按顺序命名具有相同名称的多个列

时间:2015-04-16 08:18:39

标签: r dataframe

我以数据框的形式总结了我的数据

      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

已编辑:列号未知

2 个答案:

答案 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