[英]Looking for an R function that will allow me to summarize data in a df based on matching values in 5 columns
[英]Looking for code in R to summarize by ____H or ____D?
我有一個包含每個樣本的 ASV 的圖表,樣本按數字(樣本)和對應於人類或狗的字母排序。 我正在嘗試查看哪些 ASV 僅存在於人類或僅存在於狗中。 我對如何做到這一點的想法是按狗或人對所有行求和,忽略單個樣本,並查看 0 或大於零的值。
我不確定代碼,已經嘗試了一些東西,但都沒有奏效。 主要使用 phyloseq 和 DESeq2。 這是我使用的表格,有 11,000 個 ASV 樣本。
我有點困惑行名和列名代表什么,但我給了它一個 go。 如果這不是你的意思,請糾正我。
data.table
package 有一個整潔的 function, melt( )
,允許您將數據從寬格式轉換為長格式。 這將使您更容易分析和總結您的價值觀。
library(data.table)
data <- data.table(
`ASV_ID` = c(3,5,6,7,10,11,12,14,15,16,20),
`2104H` = c(0,353,483,305,289,200,0,0,0,284,406),
`2104D` = c(470,39,43,427,48,488,356,390,482,0,0),
`2105H` = c(0,784,816,0,704,100,0,0,0,158,141),
`2105D` = c(0,0,0,0,0,0,0,0,0,0,0))
data
ASV_ID 2104H 2104D 2105H 2105D
1: 3 0 470 0 0
2: 5 353 39 784 0
3: 6 483 43 816 0
4: 7 305 427 0 0
5: 10 289 48 704 0
6: 11 200 488 100 0
7: 12 0 356 0 0
8: 14 0 390 0 0
9: 15 0 482 0 0
10: 16 284 0 158 0
11: 20 406 0 141 0
data2 <- melt(
data = data,
id.vars = c("ASV_ID"),
measure.vars = c("2104H","2104D","2105H","2105D"),
variable.name = "sample",
value.name = "value")
data2[,.(Sum = sum(value)),by=.(sample)]
sample Sum
1: 2104H 2320
2: 2104D 2743
3: 2105H 2703
4: 2105D 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.