将不同的列值行求和到R中的新列行中

将不同的列值行求和到R中的新列行中,r,R,我想将不同的列值行合并到一个新的列行中 例如: df <- data.frame(area = c("a","b","c","a"), d = c(1,3,6,3), f = c(3,2,8,2), e = c(4,7,1,8), g = c(6,9,2,9)) df <- aggregate(df, list(ar

我想将不同的列值行合并到一个新的列行中

例如:

df <- data.frame(area = c("a","b","c","a"),
                     d = c(1,3,6,3),
                     f = c(3,2,8,2),
                     e = c(4,7,1,8),
                     g = c(6,9,2,9))
df <- aggregate(df, list(area=replace(area == c("a","c"), "a+c+a")), sum)
我试过这样做:

df <- data.frame(area = c("a","b","c","a"),
                     d = c(1,3,6,3),
                     f = c(3,2,8,2),
                     e = c(4,7,1,8),
                     g = c(6,9,2,9))
df <- aggregate(df, list(area=replace(area == c("a","c"), "a+c+a")), sum)

df另一种使用
dplyr的解决方案

library(dplyr)

aggr <- df[df$area %in% c("a", "c"),-1] %>% 
  summarize_all(sum)
rbind(df[!(df$area %in% c("a", "c")),], 
      bind_cols(area = "a+c+a", aggr))

#    area    d  f  e  g
# 2     b    3  2  7  9
# 1 a+c+a   10 13 13 17
库(dplyr)
aggr%
汇总所有(总和)
rbind(df[!(df$面积百分比,单位为%c(“a”、“c”),]),
绑定(区域=“a+c+a”,聚合))
#区域d f e g
#2B3279
#1A+c+A101317

谢谢,当我在数据上使用您的代码时,“bind_cols(area=“a+c+a”,aggr))”部分遇到错误:“无法将对象转换为数据帧”。我没有理想now@enerstoHuang奇怪的是,当我复制/粘贴这段代码时,它对我来说很好。也许更新dplyr?