R:输出"值"直接进入数据帧

时间:2017-09-27 18:30:14

标签: r dataframe

这里有一个简单的问题,但我在谷歌搜索找到正确答案时遇到了麻烦。

我使用pracma软件包中的AUC1 = trapz(df$x, df$y) AUC2 = trapz(df$x, df$z) ... 来获取曲线下方区域的值。

class(AUC1) = "numeric"
typeof(AUC1) = "double"

由于我只有7个条件,我手动执行此操作,产生7个存储值,并具有以下属性:

1 AUC1    VALUE1
2 AUC2    VALUE2
  ...     ...
7 AUC7    VALUE7

如何直接将结果输出到数据框而不是值列表?我想要这个结果:

trapz

但我现在要做的就是创建一个新的数据帧并手动输入每个值。

作为后续问题,同时在多个值上运行5 user's的最佳方法是什么(而不是手动输入)。我只是想创建一个循环吗?谢谢!

1 个答案:

答案 0 :(得分:3)

不是手动为每个data.frame运行trapz,而是将它们放在一个列表中,然后使用lapply一次性运行trapz

#DATA
set.seed(2)
df1 = data.frame(x = rnorm(10), y = rnorm(10))
df2 = data.frame(x = rnorm(10), y = rnorm(10))

#Create a list
mylist = mget(c("df1", "df2"))

#Run trapz on all dataframes in mylist
library(pracma)
data.frame(Values = do.call(rbind, lapply(mylist, function(a) trapz(a$x, a$y))))
#       Values
#df1 2.2370598
#df2 0.2684159