如何按名称聚合data.frame的行,将R上相应列的数值相加?
我是Rstudio的早期用户,我有一个非常简单的问题,但不幸的是我无法解决它。 我只想通过df的第一列中包含的单词来聚合data.frame的行。 data.frame由五列组成: 第一种是由文字构成的; 第二个、第三个、第四个、第五个由数值组成 例如,如果数据为:如何按名称聚合data.frame的行,将R上相应列的数值相加?,r,dataframe,aggregate,R,Dataframe,Aggregate,我是Rstudio的早期用户,我有一个非常简单的问题,但不幸的是我无法解决它。 我只想通过df的第一列中包含的单词来聚合data.frame的行。 data.frame由五列组成: 第一种是由文字构成的; 第二个、第三个、第四个、第五个由数值组成 例如,如果数据为: SecondWord X Y Z Q NO 1 2 2 1 NO 0 0 1 0 YES 1 1 1 1 我希望看到这样的结果: SecondWord X Y Z Q NO
SecondWord X Y Z Q
NO 1 2 2 1
NO 0 0 1 0
YES 1 1 1 1
我希望看到这样的结果:
SecondWord X Y Z Q
NO 1 2 3 1
YES 1 1 1 1
我怎么办?
我尝试使用以下方法:
test <- read.csv2("test.csv")
df<-aggregate(.~Secondword,data=test, FUN = sum, na.rm=TRUE)
测试也应该有效
例如,类似于:
library(plyr)
grouped <- ddply(test, "Secondword", numcolwise(sum))
库(plyr)
分组您也可以使用tidyverse
library(tidyverse)
df <- test %>%
group_by(SecondWord) %>%
summarize_each(funs(sum))
df
# SecondWord X Y Z Q
# NO 1 2 3 1
# YES 1 1 1 1
库(tidyverse)
df%
分组依据(第二个字)%>%
各汇总(funs(sum))
df
#第二个词X Y Z Q
#第1231号
#是的,1
aggregate(.~SecondWord,test,sum)
适合我。在应用aggregate
之前,先打印test
一次。一般来说,你应该确定问题主体中使用的软件包,并参考帮助文件,如?ddply
,而不是使用可能在几年后中断的链接。好吧,我希望谷歌在几年后仍然存在。如果它坏了,在那里搜索ddply。