这是我的意见。具有n列的数据框,以及将每个ID分配给组的辅助数据框。
df <- data.frame(
a1 = c(1,2,3),
a2 = c(2,3,4),
b1 = c(4,5,6),
b2 = c(5,6,7)
)
aux <- data.frame(
id = c("a1", "a2", "b1", "b2"),
group = c("a", "a", "b", "b")
)
获得此输出的通用方法是什么?(求和a1 + a2和b1 + b2)
desired_output <- data.frame(
a = c(3,5,7),
b = c(9,11,13)
)
我已经尝试使用dplyr::group_by
和tidyr::unite
,但是还没有开始使用。
为了避免拆分数据帧并通过代码传递较长的数据帧列表,您可以使用索引:
cols <- split(aux$id, aux$group)
data.frame(lapply(cols, function(i) rowSums(df[i])))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句