如何使用R来更改我的表格

时间:2018-05-02 12:19:31

标签: r dataframe biomart

使用 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

2 个答案:

答案 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 LHSSpecies改为RHS value.var Total来转换您的数据:

data.table::dcast(my_data,
                  GeneName ~ Species, 
                  value.var = "Total")

结果:

  GeneName Chicken Human Mouse
1     FGF1       3     6     3