我有一个包含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
答案 0 :(得分:1)
它之所以不起作用的原因是由于对数据集进行了子集化,然后得到了列名。相反,我们可以直接获取整个数据集的列名称,并使用数字索引
对列进行子集化colnames(t0)[15:30] <- paste(colnames(t0)[15:30], "Sub", sep="_")