我有一个大约有25列的数据框,我想将每列的字段名称重命名为列号的集合名称。例如,第4列将被称为Col4,第5列将被称为Col5..etc。
我可以编写我的R代码,以便:
colnames(df)[1]<-'Col1'
colnames(df)[2]<-'Col2'
... x25
然而,必须有更好的方法。我决定使用循环代替我的代码:
for (i in 1:ncol(df))
{
colnames(df)[i]<-'Col'&i
}
但我收到错误:
'Col'中的错误&amp;一世 : 只能对数字,逻辑或复杂类型
进行操作如何更正循环中的代码?
答案 0 :(得分:1)
处理字符时,您需要使用函数paste
或paste0
。
在你的情况下,这应该可以解决问题。
colnames(df) <- paste0("Col", seq(1,25))
答案 1 :(得分:0)
df <- as.data.frame(matrix(ncol=25,nrow=1)) # create a dataframe with this shape
labels <- paste0("Col",seq(1,25,1))
colnames(df) <- labels
然后它会是这样的:
> df
Col1 Col2 Col3 Col4 Col5 Col6 Col7 Col8 Col9 Col10 Col11 Col12 Col13 Col14
Col15 Col16 Col17 Col18 Col19 Col20
1 NA NA NA NA NA NA NA NA NA NA NA NA NA NA
NA NA NA NA NA NA
Col21 Col22 Col23 Col24 Col25
1 NA NA NA NA NA