这里有一个简单的问题,但我在谷歌搜索找到正确答案时遇到了麻烦。
我使用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
的最佳方法是什么(而不是手动输入)。我只是想创建一个循环吗?谢谢!
答案 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