r - 将多参数函数应用于R中列表中的所有数据框
问题描述
我有一个数据框列表,每个数据框有 3 列。
list_of_df <- list(df1 = data.frame(f = c(6,4,2,9,7), g = c(7,5,3,1,8), h = c(4,2,1,3,6)),
df2 = data.frame(f = c(5,3,1,8), g = c(6,4,2,9), h = c(4,1,5,7)))
list_of_df
$df1
f g h
1 6 7 4
2 4 5 2
3 2 3 1
4 9 1 3
5 7 8 6
$df2
f g h
1 5 6 4
2 3 4 1
3 1 2 5
4 8 9 7
等等
我已经定义了一个函数来计算曲线下的面积(auc):
auc <- function(x,y) sum(diff(x) * (head(y,-1)+tail(y,-1)))/2
对于每个数据框,列f
是输入x
,列g
是输入y
。
现在我想使用一个版本apply()
(不关心哪一个)将该函数auc
应用于列表中的每个数据框。但我需要能够指定这些列f
并且g
应该用作输入。
到目前为止,我所有指定列的尝试都导致意外地从列表中指定了一个数据框。
有什么想法我可以做到这一点吗?谢谢。
解决方案
您的 AUC 函数对我来说似乎不正确,但该sapply
函数将列表作为输入。
auc <- function(x,y) sum(diff(x) * (head(y,-1)+tail(y,-1)))/2
list_of_df <- list(df1 = data.frame(f = c(6,4,2,9,7), g = c(7,5,3,1,8), h = c(4,2,1,3,6)),
df2 = data.frame(f = c(5,3,1,8), g = c(6,4,2,9), h = c(4,1,5,7)))
list_of_df
$df1
f g h
1 6 7 4
2 4 5 2
3 2 3 1
4 9 1 3
5 7 8 6
$df2
f g h
1 5 6 4
2 3 4 1
3 1 2 5
4 8 9 7
sapply(list_of_df, function(x) auc(x$f, x$g))
df1 df2
-15.0 22.5
推荐阅读
- php - .htaccess 文件中的用户配置文件重定向
- java - java.lang.NullPointerException:不能在 child() 中为参数 'pathString' 传递 null .... 应用程序正在崩溃
- oracle - Apex 5 在交互式网格的和处添加新行
- julia - Julia:你如何列出使用 `installkernel` 安装的内核?
- apache-spark - SparkSession.catalog.clearCache() 可以从 hdfs 中删除数据吗?
- vba - 在列中循环 #N/A 并在所有 #N/A 上插入公式
- wordpress - 使用 Elementor 的 Wordpress 网站的免费、可编辑日历?
- python - Python + Pandas JSON Url 通过 api 调用:无法将结果保存为 CSV 索引问题标量值
- django - 使用图像对 Django 模型进行单元测试 - 不太了解 SimpleUploadedFile
- r - Tibble 反转坐标