【发布时间】:2019-08-14 16:00:17
【问题描述】:
我需要根据 colnames 和每列的值重塑数据框。如何使用 reshape(或任何其他库,例如 dplyr)来实现这一点?
我相信melt功能会很有用,但我不是很熟悉。
df <- data.frame(
Group1 = c("EMX1", "EXO_C3L4", "FAF2P1", "FAM224A","GATC",
"FAM43A", "FAT4", "EXO_FEZF1-AS1"),
AVG_EXPR = rnorm(8),
Group2 = c("EXO_BRPF3", "AFS", "IJAS", "CCDC187",
"CCDC200", "CCDC7", "CCL27", "CD6"),
AVG_EXPR = rnorm(8))
> df
Group1 AVG_EXPR Group2 AVG_EXPR.1
1 EMX1 -0.4792520 EXO_BRPF3 -0.8802157
2 EXO_C3L4 -0.4820114 AFS -0.2135738
3 FAF2P1 1.0326328 IJAS -0.6290447
4 FAM224A 1.1318738 CCDC187 1.9813584
5 GATC -0.5019679 CCDC200 0.6749088
6 FAM43A -2.0718576 CCDC7 -0.4217126
7 FAT4 -0.1194380 CCL27 -0.3552010
8 EXO_FEZF1-AS1 1.4106888 CD6 0.4217045
所以我的新 data.frame 看起来像:
df2 <- data.frame(
Gene = c("EMX1", "EXO_C3L4", "FAF2P1", "FAM224A","GATC",
"FAM43A", "FAT4", "EXO_FEZF1-AS1","EXO_BRPF3", "AFS", "IJAS", "CCDC187",
"CCDC200", "CCDC7", "CCL27", "CD6"),
AVG_EXPR = c(df$AVG_EXPR,df$AVG_EXPR.1),
Group = c(rep("Group1",8),rep("Group2",8))
)
> df2
Gene AVG_EXPR Group
1 EMX1 -0.4792520 Group1
2 EXO_C3L4 -0.4820114 Group1
3 FAF2P1 1.0326328 Group1
4 FAM224A 1.1318738 Group1
5 GATC -0.5019679 Group1
6 FAM43A -2.0718576 Group1
7 FAT4 -0.1194380 Group1
8 EXO_FEZF1-AS1 1.4106888 Group1
9 EXO_BRPF3 -0.8802157 Group2
10 AFS -0.2135738 Group2
11 IJAS -0.6290447 Group2
12 CCDC187 1.9813584 Group2
13 CCDC200 0.6749088 Group2
14 CCDC7 -0.4217126 Group2
15 CCL27 -0.3552010 Group2
16 CD6 0.4217045 Group2
【问题讨论】: