簡體   English   中英

為 R 中的每個樣本添加每組中的數字

[英]Adding the number in each group for each sample in R

我有 27 個樣本,但對於每個樣本,我對 3 組的新抗原計數不同,例如

> head(data)
             Sample Total Total_WB Total_SB
1 LP6008334-DNA_A03   884      608      276
2 LP6008334-DNA_A03    88       66       22
3 LP6008334-DNA_A03     0        0        0
4 LP6008334-DNA_A03   715      485      230
5 LP6008334-DNA_A03   698      470      228
6 LP6008334-DNA_A03     0        0        0
> unique(data$Sample)
 [1] "LP6008334-DNA_A03" "LP6008334-DNA_A04" "LP6008334-DNA_B02" "LP6008334-DNA_C02"
 [5] "LP6008334-DNA_D02" "LP6008336-DNA_F02" "LP6008336-DNA_G01" "LP6008336-DNA_H01"
 [9] "LP6008337-DNA_A07" "LP6008337-DNA_H06" "LP6008460-DNA_A04" "LP6008460-DNA_D01"
[13] "LP6008460-DNA_F02" "LP6008460-DNA_G03" "SLX-18929_UDP0015" "SLX-18929_UDP0018"
[17] "SLX-18929_UDP0024" "SLX-18929_UDP0030" "SLX-18929_UDP0059" "SLX-18929_UDP0067"
[21] "SLX-18929_UDP0080" "SLX-18929_UDP0086" "SLX-18929_UDP0094" "LP6005334"        
[25] "LP6005500"         "LP6007600"         "LP6008202"        
> 

> dim(data)
[1] 5940    4
>

我想有 27 個樣本在行中,並為前面的每個樣本加新抗原

我怎么能在 R 中做到這一點?

如果我們需要按總和進行分組

library(dplyr)
data %>%
    group_by(Sample) %>% 
    summarise(across(starts_with("Total"), sum, na.rm = TRUE), .groups = 'drop')

如果是重塑為寬幅面

library(data.table)
library(dplyr)
library(tidyr)
data %>% 
   mutate(rn = rowid(Sample)) %>% 
   pivot_wider(names_from = rn, values_from = c(Total, Total_WB, Total_SB))

數據

data <- structure(list(Sample = c("LP6008334-DNA_A03", "LP6008334-DNA_A03", 
"LP6008334-DNA_A03", "LP6008334-DNA_A03", "LP6008334-DNA_A03", 
"LP6008334-DNA_A03"), Total = c(884L, 88L, 0L, 715L, 698L, 0L
), Total_WB = c(608L, 66L, 0L, 485L, 470L, 0L), Total_SB = c(276L, 
22L, 0L, 230L, 228L, 0L)), class = "data.frame", row.names = c("1", 
"2", "3", "4", "5", "6"))

暫無
暫無

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

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