修改R中特定列范围的后缀

时间:2017-04-03 16:08:01

标签: r

我有一个包含N列的数据框。在这种情况下25并且想要仅从colum变量15到30更改后缀。

t0是具有30列变量的数据框

对于所有变量1到30,以下命令工作正常:

t0<-data.frame(a=c(1),b=c(1),c=c(1),d=c(1),e=c(1),f=c(1),g=c(1),h=c(1))

colnames(t0) <- paste( colnames(t0), "Sub",sep = "_")

names(t0)
 [1] "a_Sub"    "b_Sub"        "c_Sub"       "d_Sub"    "e_Sub"  
 [6] "f_Sub"    "g_Sub"        "h_Sub"       "i_Sub"    "ii_Sub"
 [15] "j_Sub"    "k_Sub"       "l_Sub"       "m_Sub"    "n_Sub"     

期望的输出:

names(t0)
 [1] "a"    "b"        "c"       "d"          "e"  
 [6] "f"    "g"        "h"       "i"         "ii"
 [15] "j_Sub"    "k_Sub"       "l_Sub"       "m_Sub"    "n_Sub"

知道如何在R中完成这项工作吗?

谢谢,

Albit

1 个答案:

答案 0 :(得分:1)

它之所以不起作用的原因是由于对数据集进行了子集化,然后得到了列名。相反,我们可以直接获取整个数据集的列名称,并使用数字索引

对列进行子集化
colnames(t0)[15:30] <- paste(colnames(t0)[15:30], "Sub", sep="_")