[英]Grouping rows in R based on numbers
我有一個數據框,其中一欄是站點編號,但是每個站點編號重復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)
提前致謝!
我們可以使用dplyr
。 我們按“站點”分組,並使用summarise_each
獲得所有其他列的sum
。
library(dplyr)
df1 %>%
group_by(Site) %>%
summarise_each(funs(sum))
或與data.table
一起data.table
。 我們將'data.frame'轉換為'data.table'( setDT(df1)
,按'Site' lapply(.SD,..
然后在各列之間循環( lapply(.SD,..
)並獲取sum
。
setDT(df1)[, lapply(.SD, sum), by = Site]
df1 <- data.frame(Site, Species1, Species2, Species3)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.