如何使用dplyr重命名列,其中新列名和原始列名都是变量[duplicate]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用dplyr重命名列,其中新列名和原始列名都是变量[duplicate]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

虽然我已经尝试过,但这里很难找到这类问题。

library(dplyr)
target = "Species"

rename_data <- function(iris, target = "Species", new_target_name = "Spec3") {

  iris2 <- iris %>% rename(new_target_name = target)
  iris2
}

head(rename_data(iris))

  Sepal.Length Sepal.Width Petal.Length Petal.Width new_target_name
1          5.1         3.5          1.4         0.2          setosa
2          4.9         3.0          1.4         0.2          setosa
3          4.7         3.2          1.3         0.2          setosa

我希望Species重命名为Spec3,而不是new_target_name

我怎样才能做到这一点?

答案

你可以像这样使用data.table

 library(data.table)
 target = "Species"

 new_target_name = "Spec3"

 iris2 <- setnames(iris, old=target, new =new_target_name)
 head(iris2)
另一答案

提供的链接提供了对解决方案的洞察力

rename_data <- function(iris, target = "Species", new_target_name = "Spec3") {
  iris2 <- iris %>% rename(!!new_target_name := target)
  iris2
}

head(rename_data(iris))

以上是关于如何使用dplyr重命名列,其中新列名和原始列名都是变量[duplicate]的主要内容,如果未能解决你的问题,请参考以下文章

在 python 或 Pyspark 数据框中使用特殊字符重命名列

熊猫重命名列

如何按列索引重命名列?

熊猫按位置重命名列? [复制]

pandas重命名列名称数据列名称重命名(Rename Column Names): renameset_axisdf.columns

使用 DACPAC,当表上有触发器时,如何重命名列?