我如何使用 R 更改我的 table

How can I use R to change my table

使用 R 我将如何更改我的 table:

GeneID    GeneName    Species    Paralogues    Domains    Total
 1234      FGF1        Human         4            2         6
 5678      FGF1        Mouse         2            1         3
 9104      FGF1       Chicken        3            0         3

到表示总列的table,例如

GeneName    Human    Mouse    Chicken
  FGF1        6        3         3

您可以使用 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)

您可以使用 data.table 中的 dcast()

对于输入:

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