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