我有一个包含多个列的 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/