【问题标题】:Change all R columns names using a reference file使用参考文件更改所有 R 列名称
【发布时间】:2019-05-11 21:39:51
【问题描述】:

我正在尝试重命名 R 中数据框中的列。但是,重命名具有循环引用。我想解决这个问题,不能避免循环引用。一种思考方式是重命名列并将其移动到新的dataframe,从而避免循环引用。但是,我无法这样做。

重命名参考如下:

我目前使用的功能如下:

standard_mapping <- function(mapping.col, current_name, standard_name, data){
  for(i in 1:nrow(mapping.col)) {
    # i =32
    print(i)
    eval(parse(text = paste0("std.name = mapping.col[",i,",'",new_name,"']")))
    eval(parse(text = paste0("data.name = mapping.col[",i,",'",old_name,"']")))

    if(data.name %in% colnames(data)){
      setnames(data, old=c(data.name), new = c(std.name))
    }
  }
  return(data)
}

Mapping.col 引用图像

【问题讨论】:

    标签: r dataframe rename cbind


    【解决方案1】:

    您可以同时重命名多个列,并且无需移动存储在 data.frame 中的数据本身。如果你知道正确的顺序,你可以使用

    names(data) <- mapping.col$new_name
    

    如果顺序不同,可以使用match先匹配到正确的位置:

    names(data) <- mapping.col$new_name[match(names(data), mapping.col$old_name)]
    

    顺便说一句,分配名称和其他属性总是通过某种分配来完成。 setNames 返回的东西,仍然需要分配。

    【讨论】:

    • 使我的数据集完全空白,尝试使用匹配的代码。深入研究
    猜你喜欢
    • 1970-01-01
    • 2016-05-05
    • 1970-01-01
    • 1970-01-01
    • 2020-06-14
    • 2017-05-22
    • 2021-02-03
    • 1970-01-01
    • 2019-02-15
    相关资源
    最近更新 更多