【问题标题】:Rename a set of columns in R by position按位置重命名 R 中的一组列
【发布时间】:2017-10-26 12:19:07
【问题描述】:

我有一个数据框,我想在其中重命名 45 列中的 30 列。这 30 列具有不同的名称(它们来自不同的来源),但它们始终位于数据框中的 2:31 位置。有没有办法按照names(df)[2:31]<- c("name1", "name2", ..., "name30") 的方式重命名列 2:31?或者,有没有办法使用 dplyr 的 rename 命令而不给出列的名称,而是给出它们的位置?

我知道这有点基本,但我能找到的所有解决方案都希望相反,在未知位置重命名一个具有已知名称的列。

【问题讨论】:

  • 您尝试过names(df)[2:31] <- c("yada", ..., "gah") 的方式吗?它有效,据我所知,下面的答案没有任何改进。

标签: r dataframe


【解决方案1】:

使用colnames() 函数

X <- data.frame(bad=1:3, worse=1:3)
colnames(X)[1:2] <- c("name1", "name2")

您可以使用colnames(),然后使用子集并传递带有名称的数组。希望对您有所帮助。

【讨论】:

    【解决方案2】:

    你可以使用 dplyr rename

    x1 <- data.frame(bad=1:3, worse=1:3)
    x2 <- x1 %>% rename(name1 = 1, name2 = 2)
    

    【讨论】:

      猜你喜欢
      • 2020-07-10
      • 1970-01-01
      • 2017-10-01
      • 2015-06-17
      • 2023-01-13
      • 2014-05-31
      • 2018-01-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多