使用参考文件更改所有 R 列名称
Change all R columns names using a reference file
我正在尝试重命名 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是指图片
您可以同时重命名多个列,并且无需移动存储在 data.frame 中的数据本身。如果你知道正确的顺序,你可以使用
names(data) <- mapping.col$new_name
如果顺序不一样,可以用match
先匹配到合适的位置:
names(data) <- mapping.col$new_name[match(names(data), mapping.col$old_name)]
顺便说一下,分配名称和其他属性总是通过某种分配来完成的。 setNames
returns 东西,仍然需要分配。
我正在尝试重命名 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是指图片
您可以同时重命名多个列,并且无需移动存储在 data.frame 中的数据本身。如果你知道正确的顺序,你可以使用
names(data) <- mapping.col$new_name
如果顺序不一样,可以用match
先匹配到合适的位置:
names(data) <- mapping.col$new_name[match(names(data), mapping.col$old_name)]
顺便说一下,分配名称和其他属性总是通过某种分配来完成的。 setNames
returns 东西,仍然需要分配。