我以数据框的形式总结了我的数据
V1 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14
1 CCL5 P 0.000491 6546.2 P 0.000491 6546.2 P 0.000491 6546.2 P 0.000491 6546.2
2 EPHB3 P 0.000562 461.3 P 0.000562 461.3 P 0.000562 461.3 P 0.000562 461.3
3 GUCA1A A 0.602006 9.4 A 0.602006 9.4 A 0.602006 9.4 A 0.602006 9.4
4 HSPA6 P 0.000322 564.0 P 0.000322 564.0 P 0.000322 564.0 P 0.000322 564.0
5 PTPN21 A 0.204022 94.3 A 0.204022 94.3 A 0.204022 94.3 A 0.204022 94.3
6 UBA7 P 0.000468 845.6 P 0.000468 845.6 P 0.000468 845.6 P 0.000468 845.6
7 7-Mar P 0.000673 643.2 P 0.000673 643.2 P 0.000673 643.2 P 0.000673 643.2
我知道使用类似
之类的命名列的非常简单的情况 names(df)= c("Gene","Score","Call")
## df一个包含三列的数据框
但是这里的情况与简单的情况略有不同,其中第一列是全局的,我想为其分配名称gene
,之后为第二列call
,为第3列{{1} },以及p-value
并重复它直到完成。
最终输出看起来应该是这样的
intensity
已编辑:列号未知
答案 0 :(得分:3)
你可以试试这个
names(df) <- c("Gene", rep(c("call", "p-value", "intensity"), 4))
Gene call p-value intensity call p-value intensity call p-value intensity call p-value intensity
1 CCL5 P 0.000491 6546.2 P 0.000491 6546.2 P 0.000491 6546.2 P 0.000491 6546.2
2
...
答案 1 :(得分:0)
这也适用于发布的评论@jdharrison
names(df) <- c("Gene", rep(c("call", "p-value", "intensity"), times = (ncol(df) - 1)%/%3))
Gene call p-value intensity call p-value intensity call p-value intensity call p-value intensity
1 CCL5 P 0.000491 6546.2 P 0.000491 6546.2 P 0.000491 6546.2 P 0.000491 6546.2
2 EPHB3 P 0.000562 461.3 P 0.000562 461.3 P 0.000562 461.3 P 0.000562 461.3
3 GUCA1A A 0.602006 9.4 A 0.602006 9.4 A 0.602006 9.4 A 0.602006 9.4
4 HSPA6 P 0.000322 564.0 P 0.000322 564.0 P 0.000322 564.0 P 0.000322 564.0
5 PTPN21 A 0.204022 94.3 A 0.204022 94.3 A 0.204022 94.3 A 0.204022 94.3
6 RFC2 P 0.000673 643.2 P 0.000673 643.2 P 0.000673 643.2 P 0.000673 643.2
7 UBA7 P 0.000468 845.6 P 0.000468 845.6 P 0.000468 845.6 P 0.000468 845.6