R 按多列分组数据
我有许多按列名称分组的数据记录R 按多列分组数据,r,data.table,dplyr,plyr,R,Data.table,Dplyr,Plyr,我有许多按列名称分组的数据记录 Name Surname value al adams 120 al adams 514 al bats 220 al bats 120 bill cox 440 bill cox 320 bill brit 320 我想根据名字和姓氏(并保留它们)和值的总和进行分组。 这是我的密码。我没有得到想要的显示 DT<-base_AA_P1 %>% s
Name Surname value
al adams 120
al adams 514
al bats 220
al bats 120
bill cox 440
bill cox 320
bill brit 320
我想根据名字和姓氏(并保留它们)和值的总和进行分组。
这是我的密码。我没有得到想要的显示
DT<-base_AA_P1 %>% select(Name, Surname) %>% group_by(Name, Surname) %>% summarize(SUM_value = sum(value, na.rm = TRUE))
DT%select(Name,姓氏)%%>%group\u by(Name,姓氏)%%>%summary(SUM\u value=SUM(value,na.rm=TRUE))
试试这个:
data = data.frame(Name = c("al","al","al","al","bill","bill","bill"),
Surname = c("adams","adams","bats","bats","cox","cox","brit"),
value = c(120,514,220,120,440,320,320))
library(dplyr)
data2 = data %>%
group_by(Name,Surname)%>%
summarise(new_value = sum(value))
data2
Name Surname new_value
1 al adams 634
2 al bats 340
3 bill brit 320
4 bill cox 760
我认为,如果选择名称和姓氏,那么最终数据中就不会有所需的值之和。
ave(df$value,as.numeric(as.factor(粘贴(df$name,df$name))),FUN=sum)
或聚合(df$value,by=list(df$name,df$name),sum)
您对选择的调用正在删除值列,这样就不能在摘要中调用它。删除链的select
部分应该可以。@d.b它工作得很好,但我会重新排列列。谢谢!@George删除选定部分时,结果是一个(1*1)数据帧,它不是所需的目标。我尝试了您的解决方案,data2(1列1行)刚刚显示了值的总和,这不是它所期望的;(如果你运行我的代码,那就不可能了,因为data2只有一行和一列。我甚至把data2放在这里,你可以看到你已经得到了每个名字姓氏组合的总和