【问题标题】:Renaming Fields in R using a loop使用循环重命名 R 中的字段
【发布时间】:2018-09-01 00:39:56
【问题描述】:

我有一个大约有 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”和 i 中的错误: 只能对数字、逻辑或复杂类型进行操作'

如何更正循环中的代码?

【问题讨论】:

    标签: r loops


    【解决方案1】:

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

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

    colnames(df) <- paste0("Col", seq(1,25))
    

    【讨论】:

      【解决方案2】:
       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
      

      【讨论】:

        猜你喜欢
        • 2014-11-22
        • 2018-08-02
        • 2018-07-16
        • 2016-09-28
        • 2016-11-13
        • 2021-01-17
        • 1970-01-01
        • 1970-01-01
        • 2014-06-17
        相关资源
        最近更新 更多