使用 R 如何更改我的表:
GeneID GeneName Species Paralogues Domains Total
1234 FGF1 Human 4 2 6
5678 FGF1 Mouse 2 1 3
9104 FGF1 Chicken 3 0 3
表示总列的表格,例如
GeneName Human Mouse Chicken
FGF1 6 3 3
答案 0 :(得分:2)
您可以使用dplyr::spread
从长到宽重塑:
library(tidyverse);
df %>%
select(GeneName, Species, Total) %>%
spread(Species, Total)
# GeneName Chicken Human Mouse
#1 FGF1 3 6 3
df <- read.table(text =
"GeneID GeneName Species Paralogues Domains Total
1234 FGF1 Human 4 2 6
5678 FGF1 Mouse 2 1 3
9104 FGF1 Chicken 3 0 3", header = T)
答案 1 :(得分:0)
您可以使用dcast()
中的data.table
。
输入:
text <-
"GeneID GeneName Species Paralogues Domains Total
1234 FGF1 Human 4 2 6
5678 FGF1 Mouse 2 1 3
9104 FGF1 Chicken 3 0 3"
my_data <- read.table(text = text, header = TRUE)
您可以将GeneName
LHS
和Species
改为RHS
value.var
Total
来转换您的数据:
data.table::dcast(my_data,
GeneName ~ Species,
value.var = "Total")
结果:
GeneName Chicken Human Mouse
1 FGF1 3 6 3