【问题标题】:Consolidating values across columns by duplicated row name通过重复的行名跨列合并值
【发布时间】:2018-08-19 03:25:28
【问题描述】:

我有一个包含重复行名的大型数据矩阵 (37000 x 2689),我正在尝试通过行名合并列值(样本)。我已经尝试通过包 dplyr 使用 sum 但它没有帮助例如,这里的基因列理想情况下会成为行名,但 R 不允许重复的行名。

gene sampleA sampleB sampleC
aaa    0        0      78
bbb    0        0       1
ccc    0        0      34
aaa    0        10      0
bbb    0        2       0
ccc    0        17      0
aaa    3         0      0
bbb    900       0      0
ccc    6         0      0

【问题讨论】:

    标签: r


    【解决方案1】:

    使用 dplyr,这应该很简单:

    set.seed(123)
    df <- data_frame(gene=rep(c('aaa', 'bbb', 'ccc'), 3), 
          sampleA=rnorm(9), sampleB=rnorm(9), sampleC=rnorm(9))
    

    这会给你..

    > head(df)
    # A tibble: 6 x 4
      gene  sampleA sampleB sampleC
      <chr>   <dbl>   <dbl>   <dbl>
    1 aaa   -0.560   -0.446   0.701
    2 bbb   -0.230    1.22   -0.473
    

    然后您使用dplyrgroup_bysummarise_at 函数进行聚合。

    df %>% 
    group_by(gene) %>%
    summarise_at(.vars = vars(sampleA, sampleB, sampleC), sum)
    

    【讨论】:

      猜你喜欢
      • 2021-11-12
      • 2020-02-02
      • 2020-12-26
      • 2021-08-09
      • 2017-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多