簡體   English   中英

根據數字對R中的行進行分組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM