如何按R中的分组列求和?

纳乔卡布

这是我的意见。具有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_bytidyr::unite,但是还没有开始使用。

乔里斯·梅斯(Joris Meys)

为了避免拆分数据帧并通过代码传递较长的数据帧列表,您可以使用索引:

cols <- split(aux$id, aux$group)

data.frame(lapply(cols, function(i) rowSums(df[i])))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章