簡體   English   中英

將R表中的值相加2個因子

[英]Summing values in R table by 2 factors

我有一個大文本文件,如下所示:

tag            colony   diff
1035            03      498
1035            03     -44365
1035            03     -66652
1035            04      234234
1035            04     -343
1035            04     -23423
1037            10      234234
1037            10     -343
1037            10     -23423

大多數“標簽”只有一個菌落,例如上例中的1037。 但是,有些具有2,例如1036同時具有03和04。我要對每個標簽的diff列求和,但對每個菌落分別求和,因此輸出將是這樣的。

tag    colony    total
1035   03        -110 519
1035   04        210 648
1037   10        210 648

到目前為止(我在R中工作),我一直在使用聚合:

x2 = aggregate(x$diff, by=list(tag=x$tag), FUN=sum)

但這將所有標簽都算在一起,而不管菌落如何。 可以說,有沒有一種方法可以“添加另一個級別”到聚合函數中,以便分別計算菌落?

謝謝

我們可以使用dplyr

library(dplyr)
df1 %>%
   group_by(tag, colony) %>%
   summarise(total = sum(diff))

或數據data.table

library(data.table)
setDT(df1)[, .(total = sum(diff)), .(tag, colony)]

x2 <- aggregate(x$diff, by=list(x$tag,x$colony), FUN=sum)

或等效地作為公式x2 <- aggregate(diff~tag+colony,data=x,FUN=sum)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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