R如何通过查找表中的不同函数汇总多列数据

标签 r

我有一个包含多个列的 data.table,需要根据列名称通过特定函数进行汇总。

A | B | C | D
1 | 1 | 1 | x
2 | 2 | 2 | y
3 | 3 | 3 | z

应该变成

A | B | C | D
1 | 3 | 6 | z

根据查找表:

A     | B     | C     | D
"min" | "max" | "sum" | "max"

最佳答案

如果查找表中的函数名称是有效的 R 函数,我们可以使用 match.fun

data.frame(Map(function(x, y) match.fun(y)(x), df1, lookup))
#  A B C D
#1 1 3 6 z

数据

df1 <- structure(list(A = 1:3, B = 1:3, C = 1:3, D = c("x", "y", "z"
)), row.names = c(NA, -3L), class = c("data.table", "data.frame"))

lookup <- structure(list(A = "min", B = "max", C = "sum", D = "max"), 
           row.names = c(NA, -1L), class = "data.frame")

关于R如何通过查找表中的不同函数汇总多列数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70718839/

相关文章:

c# - 从 R 调用 .NET/C#

r - 如何匹配字符串中的多个模式?

r - 对数似然的优化,传入不同的数据集

r - 我在 data.table 中复制行的方法有效吗?

r - 执行 TukeyHSD 时选择了未定义的列

r - 仅将括号与 R 中的文本和数字匹配

r - 在R中更改Tor身份

r - `geom_a(stat="b", ... )` and ` stat_b(geom ="a",...)`之间有什么区别吗?

r - 如何创建整洁的 t 检验表?

r - 如何删除带有 NA 和 NA 之后的行?