【问题标题】:Changing some column name in R [duplicate]更改 R 中的某些列名 [重复]
【发布时间】:2021-04-18 08:01:18
【问题描述】:

我想用此代码更改我的第 4 列和第 5 列的列名,但它不起作用。

colnames(df[,4:5]) <- paste(colnames(df[,4:5]), "13", sep= "_")

如果我删除 [,4:5] 并更改整个数据框的列名,它会起作用。

colnames(df) <- paste(colnames(df), "13", sep= "_")

但我想要的输出只是更改第 4 列和第 5 列。谢谢。

【问题讨论】:

  • 试试colnames(df)[4:5] = paste(colnames(df)[4:5], "13", sep="_")
  • @user438383 有它。您希望将值分配给 colnames 向量,而不是数据框行。

标签: r


【解决方案1】:

使用dplyr::rename() 更容易。

只需使用df %&gt;% rename(new_name = old_name),就完成了!

这是一个例子

library(dplyr)
head(mtcars, n = 2)
              mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4      21   6  160 110  3.9 2.620 16.46  0  1    4    4
Mazda RX4 Wag  21   6  160 110  3.9 2.875 17.02  0  1    4    4

mtcars_new = mtcars %>% rename(new_mpg = mpg)

head(mtcars_new, n = 2)
              new_mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4          21   6  160 110  3.9 2.620 16.46  0  1    4    4
Mazda RX4 Wag      21   6  160 110  3.9 2.875 17.02  0  1    4    4

【讨论】:

    【解决方案2】:

    您可以尝试replace,如下所示

    setNames(df, replace(names(df), 4:5, paste(names(df)[4:5], "13", sep = "_")))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-31
      • 2010-10-30
      相关资源
      最近更新 更多