【问题标题】:Transform data frame with column values as column names使用列值作为列名转换数据框
【发布时间】:2014-08-18 19:13:12
【问题描述】:

我有一个如下所示的数据框:

               variable              Name Description value  SMTS
GTEX-N7MS-0007-SM-2D7W1 ENSG00000223972.4     DDX11L1     0 Blood
GTEX-N7MS-0007-SM-2D7W1 ENSG00000227232.4      WASH7P   158 Blood
GTEX-N7MS-0008-SM-4E3JI ENSG00000223972.4     DDX11L1     0  Skin
GTEX-N7MS-0008-SM-4E3JI ENSG00000227232.4      WASH7P   166  Skin
GTEX-N7MS-0011-R10A-SM-2HMJK ENSG00000223972.4     DDX11L1     0 Brain
GTEX-N7MS-0011-R10A-SM-2HMJK ENSG00000227232.4      WASH7P   209 Brain

我想对其进行转换,使Description 列中的值成为列名,value 列中的值成为列值:

               variable   DDX11L1    WASH7P    SMTS
GTEX-N7MS-0007-SM-2D7W1         0       158   Blood
GTEX-N7MS-0008-SM-4E3JI         0       166    Skin
GTEX-N7MS-0011-R10A-SM-2HMJK    0       209   Brain

我尝试使用强制转换(例如 dcast(final, value~Name) 和其他组合),但由于我不希望任何函数(如均值、总和等)申请转换,它返回我的长度对象。我只想要这些值。任何建议将不胜感激。

【问题讨论】:

  • 查看reshape2 包并阅读以下内容:converting data between wide and long
  • 我不明白。每次我发布一个问题,为什么有人反对它?我检查了 reshape2 包,还尝试了 cast & dcast 使用很多组合,但它对我不起作用。我确实提到我尝试使用 dcast。

标签: r casting dataframe reshape melt


【解决方案1】:

这似乎给出了您正在寻找的结果:

library(reshape2)
dcast(mydf, variable + SMTS ~ Description, value.var="value")
#                       variable  SMTS DDX11L1 WASH7P
# 1      GTEX-N7MS-0007-SM-2D7W1 Blood       0    158
# 2      GTEX-N7MS-0008-SM-4E3JI  Skin       0    166
# 3 GTEX-N7MS-0011-R10A-SM-2HMJK Brain       0    209

【讨论】:

    【解决方案2】:

    试试:

    library(dplyr)
    library(tidyr)
    

    如果dat 是数据集

     dat%>% select(-Name) %>% spread(Description, value)
    #                          variable  SMTS DDX11L1 WASH7P
    # 1      GTEX-N7MS-0007-SM-2D7W1 Blood       0    158
    # 2      GTEX-N7MS-0008-SM-4E3JI  Skin       0    166
    # 3 GTEX-N7MS-0011-R10A-SM-2HMJK Brain       0    209
    

    【讨论】:

      猜你喜欢
      • 2017-07-04
      • 2021-08-24
      • 1970-01-01
      • 1970-01-01
      • 2015-04-30
      • 2023-03-10
      • 1970-01-01
      • 2020-01-03
      • 2017-10-17
      相关资源
      最近更新 更多