我有一个数据框,其中一列是站点编号,但每个站点编号重复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)
提前致谢!
答案 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)