根据数字对R中的行进行分组

时间:2015-11-08 16:37:09

标签: r

我有一个数据框,其中一列是站点编号,但每个站点编号重复5次,这是其中的一部分:

Site<-c(1,1,1,1,1,2,2,2,2,2)
Species1<-c(5,1,9,2,2,7,5,6,4,9)
Species2<-c(0,2,7,5,0,4,8,4,1,5)
Species3<-c(3,2,1,0,5,1,1,6,2,4)

有50个站点,每个站点重复五次(在五个不同日期在这些站点收集数据)。我想将具有相同站点编号的行分组,以便能够计算这些站点的物种编号。这应该为每个站点创建1行。 编辑:

 Site<-c(1,2)
 Species1<-c(19,31)
 Species2<-c(14,22)
 Species3<-c(11,14) 

提前致谢!

1 个答案:

答案 0 :(得分:0)

我们可以使用dplyr。我们按“网站”进行分组,并使用sum获取所有其他列的summarise_each

library(dplyr)
df1 %>% 
    group_by(Site) %>% 
    summarise_each(funs(sum))

data.table。我们将'data.frame'转换为'data.table'(setDT(df1),按'网站'分组,我们循环(lapply(.SD,..)通过列并获取sum

setDT(df1)[, lapply(.SD, sum), by = Site]

数据

df1 <- data.frame(Site, Species1, Species2, Species3)