使用循环重命名R中的字段

时间:2018-03-22 14:16:46

标签: r loops

我有一个大约有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;一世 :   只能对数字,逻辑或复杂类型

进行操作

如何更正循环中的代码?

2 个答案:

答案 0 :(得分:1)

处理字符时,您需要使用函数pastepaste0

在你的情况下,这应该可以解决问题。

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