将“Symbol”中的值列转换为列名,将当前列名转换为R语言中的值列

将“Symbol”中的值列转换为列名,将当前列名转换为R语言中的值列,r,R,这些是输出的快照之前和之后。 我正在寻找这个问题的所有可能的解决方案,越简单越好。我是R新手,所以我不知道如何使用任何数据操作包。我认为这是一个转折点。 目标是获取Symbol列中的值,使其成为列名,并使其成为当前列名,即GSM1573135。。。 并将这些列名转换为一列,最终输出的示例见下表二 下表是我想转换的表: Symbol GSM1573135 GSM1573160 GSM1573175 GSM1573186 GSM1573132 1 STAT1 0.29600048 -

这些是输出的快照之前和之后。 我正在寻找这个问题的所有可能的解决方案,越简单越好。我是R新手,所以我不知道如何使用任何数据操作包。我认为这是一个转折点。 目标是获取Symbol列中的值,使其成为列名,并使其成为当前列名,即GSM1573135。。。 并将这些列名转换为一列,最终输出的示例见下表二

下表是我想转换的表:

  Symbol  GSM1573135  GSM1573160  GSM1573175 GSM1573186  GSM1573132
1  STAT1  0.29600048 -0.60394290 -0.10135269  0.2308369 -0.13862038
2  GAPDH -0.06155872  0.59726906  0.18338203 -0.4480076  0.13947392
3   ACTB -0.03187084  0.13835812  0.03187466 -0.7396250 -0.09272575
4  PRPF8  0.29218674  0.13059807  0.18707657 -0.3613615 -0.04664040
5 CAPNS1  0.28366375  0.69432163  0.01103115 -0.9594564 -0.13679028
下表是转换后该表的外观:

   GSM ID        STAT1      GAPDH       ACTB        PRPF8       CAPNS1
1  GSM1573135  0.29600048 -0.06155872 -0.03187084  0.29218674  0.28366375 
2  GSM1573160 -0.60394290  0.59726906  0.13835812  0.13059807  0.69432163
3  GSM1573175 -0.10135269  0.18338203  0.03187466  0.18707657  0.01103115
4  GSM1573186  0.2308369  -0.4480076  -0.7396250  -0.3613615  -0.9594564
5  GSM1573132 -0.13862038  0.13947392 -0.09272575 -0.04664040 -0.13679028


以长格式获取数据,更改变量并以宽格式获取:

library(tidyr)
df %>%
  pivot_longer(cols = -Symbol) %>%
  pivot_wider(names_from = Symbol, values_from = value)

#  name        STAT1   GAPDH    ACTB   PRPF8  CAPNS1
#  <chr>       <dbl>   <dbl>   <dbl>   <dbl>   <dbl>
#1 GSM1573135  0.296 -0.0616 -0.0319  0.292   0.284 
#2 GSM1573160 -0.604  0.597   0.138   0.131   0.694 
#3 GSM1573175 -0.101  0.183   0.0319  0.187   0.0110
#4 GSM1573186  0.231 -0.448  -0.740  -0.361  -0.959 
#5 GSM1573132 -0.139  0.139  -0.0927 -0.0466 -0.137 
资料


你能提供更多的细节吗?您正在尝试读取和转换什么类型的数据?你有页眉吗?这些是你在一行中键入的吗?对不起,现在还不清楚你有什么,你想做什么。这是遗传符号,需要转化为机器学习的变量。谢谢你的解决方案,ronak。这是什么?values\u from=value,我没有一个名为valueronak shah的列,它似乎起作用了!我只是好奇价值是什么。您可以在dcast和pivot_中使用它。@CarlosRivas我认为如果您一步一步地运行它,就会更容易理解。如果运行此df%>%pivot\u longercols=-Symbol,您会看到有3列Symbol、name和value,其中Symbol是原始Symbol列,name是列名,value是这些列中的值。这就是价值专栏的来源。谢谢@Ronak Shah!
library(data.table)
dcast(melt(setDT(df), id.vars = 'Symbol'), variable~Symbol, value.var = 'value')
df <- structure(list(Symbol = c("STAT1", "GAPDH", "ACTB", "PRPF8", 
"CAPNS1"), GSM1573135 = c(0.29600048, -0.06155872, -0.03187084, 
0.29218674, 0.28366375), GSM1573160 = c(-0.6039429, 0.59726906, 
0.13835812, 0.13059807, 0.69432163), GSM1573175 = c(-0.10135269, 
0.18338203, 0.03187466, 0.18707657, 0.01103115), GSM1573186 = c(0.2308369, 
-0.4480076, -0.739625, -0.3613615, -0.9594564), GSM1573132 = c(-0.13862038, 
0.13947392, -0.09272575, -0.0466404, -0.13679028)), 
class = "data.frame", row.names = c(NA, -5L))