将自定义函数应用于数据框的每个子集并生成一个数据框

ds_user

在这里可能会被问到很多次,但是由于我的函数返回了数据帧,所以我无法将其与任何内容相关联。

我有自定义函数,该函数构建模型并在一个列中输出带有斜率(coeff2),在另一列中包含intercept(coeff1),在一个列中输入记录数的数据框,等等。理想情况下,我在函数中构建自己的数据帧并从函数中输出它。现在,我想基于一列对我的输入数据框架进行子集化,并在其上应用函数。

例子 :-

f.get_reg <- function(df) {
  linear.model <-lm(df$DM ~ df$FW,)
  N <- length(df$DM)
  slope <- coef(linear.model)[2]
  intercept <- coef(linear.model)[1]
  S <- summary(linear.model)$sigma
  df.out <- data.frame (N,slope, intercept, S)
  return (df.out)
}



sample_id     FW       DM  StdDev_DM Median_DM Count  X90 X60 crit Z.scores
     6724 116.39 16.20690    0.9560414   16.0293    60 3.35 3.2  3.2        1
     6724 116.39 16.20690    0.9560414   16.0293    60 3.35 3.2  3.2        1
     6724 110.24 16.73077    0.9560414   16.0293    60 3.35 3.2  3.2        1
     6728 110.24 16.73077    0.9560414   16.0293    60 3.35 3.2  3.2        1
     6728 112.81 16.15542    0.9560414   16.0293    60 3.35 3.2  3.2        1
     6728 112.81 16.15542    0.9560414   16.0293    60 3.35 3.2  3.2        1

现在,我想将函数应用于sample_ids的每个唯一子集,并仅输出一个数据帧,并将一条记录作为每个子集的输出。

Shreyasgm

dplyr

您可以do在中使用dplyr

library(dplyr)
df %>%
    group_by(sample_id) %>%
    do(f.get_reg(.))

这使:

  sample_id     N       slope intercept            S
      (int) (int)       (dbl)     (dbl)        (dbl)
1      6724     3 -0.08518211  26.12125 7.716050e-15
2      6728     3 -0.22387160  41.41037 5.551115e-17

数据表

使用.SDdata.table

library(data.table)

df <- data.table(df)
df[,f.get_reg(.SD),sample_id]

得到相同的结果:

   sample_id N       slope intercept            S
1:      6724 3 -0.08518211  26.12125 7.716050e-15
2:      6728 3 -0.22387160  41.41037 5.551115e-17

R基

使用by

resultList <- by(df,df$sample_id,f.get_reg)
sample_id <- names(resultList)
result <- do.call(rbind,resultList)
result$sample_id <- sample_id
rownames(result) <- NULL

这使:

  N       slope intercept            S sample_id
1 3 -0.08518211  26.12125 7.716050e-15      6724
2 3 -0.22387160  41.41037 5.551115e-17      6728

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将自定义函数应用于数据框的每个子集并生成一个数据框

来自分类Dev

将自定义函数应用于数据框

来自分类Dev

将自定义累积函数应用于熊猫数据框

来自分类Dev

如何将自定义函数应用于熊猫数据框的2列?

来自分类Dev

通过将函数应用于另一个数据框的列来创建新的数据框

来自分类Dev

AngularJS:将自定义过滤器应用于数据时,我得到一个空输出

来自分类Dev

将自定义函数一次应用于分组的数据帧n行

来自分类Dev

Python:将函数应用于数据框的多个子集(存储在字典中)

来自分类Dev

将当前代码应用于另一个数据框

来自分类Dev

将函数应用于数据框r的子集

来自分类Dev

将函数应用于列表中每个数据框的每个元素

来自分类Dev

将自定义函数应用于R中数据帧中每一行的两列

来自分类Dev

将自定义函数应用于具有通用名称的任何数据集

来自分类Dev

如何映射一个函数以仅应用于数据框中的某些行?

来自分类Dev

如何将一个数据框的模式应用于另一个?

来自分类Dev

将函数应用于数据框的列的每个元素

来自分类Dev

将函数应用于数据框的列的每个元素

来自分类Dev

apply()应用于ExcelFile每个数据框的每一列,Pandas

来自分类Dev

对整个数据框应用一个用户定义的函数,该函数涉及熊猫中的另一个数据框

来自分类Dev

熊猫将函数应用于数据框的每一行,以每个条目返回一个或多个新行

来自分类Dev

将功能列表应用于R中另一个数据框中的行

来自分类Dev

根据行的条件将两种排序方法应用于一个数据框

来自分类Dev

将唯一的主键应用于数据框内的每个自定义组

来自分类Dev

R将自定义矢量化函数应用于数据帧中的行,特定列

来自分类Dev

将函数应用于数据框

来自分类Dev

在数据框的每个子集中应用功能

来自分类Dev

用于获取数据框值位置的自定义函数

来自分类Dev

根据另一数据框的行对一个数据框的列进行子集

来自分类Dev

将自定义函数应用于r中的每一行

Related 相关文章

  1. 1

    将自定义函数应用于数据框的每个子集并生成一个数据框

  2. 2

    将自定义函数应用于数据框

  3. 3

    将自定义累积函数应用于熊猫数据框

  4. 4

    如何将自定义函数应用于熊猫数据框的2列?

  5. 5

    通过将函数应用于另一个数据框的列来创建新的数据框

  6. 6

    AngularJS:将自定义过滤器应用于数据时,我得到一个空输出

  7. 7

    将自定义函数一次应用于分组的数据帧n行

  8. 8

    Python:将函数应用于数据框的多个子集(存储在字典中)

  9. 9

    将当前代码应用于另一个数据框

  10. 10

    将函数应用于数据框r的子集

  11. 11

    将函数应用于列表中每个数据框的每个元素

  12. 12

    将自定义函数应用于R中数据帧中每一行的两列

  13. 13

    将自定义函数应用于具有通用名称的任何数据集

  14. 14

    如何映射一个函数以仅应用于数据框中的某些行?

  15. 15

    如何将一个数据框的模式应用于另一个?

  16. 16

    将函数应用于数据框的列的每个元素

  17. 17

    将函数应用于数据框的列的每个元素

  18. 18

    apply()应用于ExcelFile每个数据框的每一列,Pandas

  19. 19

    对整个数据框应用一个用户定义的函数,该函数涉及熊猫中的另一个数据框

  20. 20

    熊猫将函数应用于数据框的每一行,以每个条目返回一个或多个新行

  21. 21

    将功能列表应用于R中另一个数据框中的行

  22. 22

    根据行的条件将两种排序方法应用于一个数据框

  23. 23

    将唯一的主键应用于数据框内的每个自定义组

  24. 24

    R将自定义矢量化函数应用于数据帧中的行,特定列

  25. 25

    将函数应用于数据框

  26. 26

    在数据框的每个子集中应用功能

  27. 27

    用于获取数据框值位置的自定义函数

  28. 28

    根据另一数据框的行对一个数据框的列进行子集

  29. 29

    将自定义函数应用于r中的每一行

热门标签

归档