我有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中做到这一点呢?
发布于 2020-12-15 03:43:55
如果我们需要按总和进行分组
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"))https://stackoverflow.com/questions/65295359
复制相似问题