将不同的列值行求和到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?