我在列表中有几个(命名的)向量:
data = list(a=runif(n = 50, min = 1, max = 10), b=runif(n = 50, min = 1, max = 10), c=runif(n = 50, min = 1, max = 10), d=runif(n = 50, min = 1, max = 10))
我想根据阵列告诉我的内容来玩它们的不同组合,例如我想要梳理梳子中的不同组合:
var <- letters[1:length(data)]
combs <- do.call(expand.grid, lapply(var, function(x) c("", x)))[-1,]
获取这些组合的每一行的总和。所以前8行的结果如下所示:
res = rbind(a=sum(data[["a"]]), b=sum(data[["b"]]), ab = sum(c(data[["a"]], data[["b"]])), c = sum(data[["c"]]), ac = sum(c(data[["a"]], data[["c"]])), bc = sum(c(data[["b"]], data[["c"]])), abc = sum(c(data[["a"]], data[["b"]], data[["c"]])), d=sum(data[["d"]]))
我认为有可能通过循环遍历每一行和每一列来提取数据列表(虽然我会有可变数量的列),但这看起来很笨重而且很慢,有没有更好的方法我我没有看到?
非常感谢! FRA