简体   繁体   English

使用列值作为列名转换数据框

[英]Transform data frame with column values as column names

I have a dataframe that looks like this: 我有一个看起来像这样的数据框:

               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

I want to transform it such that the values in the Description column become the column names, and the values in the value column become the column values: 我想对其进行转换,以使“ 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

I tried using cast (eg dcast(final, value~Name) and other combinations too) but as I don't want any function (like mean, sum etc) to apply for the transformation, it returns me length of the objects. 我尝试使用强制转换(例如dcast(final,value〜Name)和其他组合),但由于我不希望任何函数(例如均值,总和等)申请转换,因此它返回对象的长度。 I just want the values as is. 我只想要这些值。 Any suggestions would be appreciated. 任何建议,将不胜感激。

This seems to give the results you're looking for: 这似乎可以提供您想要的结果:

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

Try: 尝试:

library(dplyr)
library(tidyr)

if dat is the dataset 如果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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM