通过 R 中的字符串匹配重命名数据框列
Rename dataframe columns by string matching in R
我正在遍历一系列 id,为每个 id 加载 2 个 csvs,并对它们进行一些分析。我需要重命名 2 个 csvs 之一的列以匹配另一个的行值。我需要在循环内执行此操作,以便将它应用于每个 id 的 csvs。
我试过像这样重命名列:
`names(LCC_diff)[2:length(LCC_diff)] <- c("Bare.areas" = "Bare areas",
"Tree." = "Tree ", "Urban.areas" = "Urban areas",
"Water.bodies" = "Water bodies")`
其中 LCC_diff 是一个数据框,每对中的第一个值是原始列名,第二个是我想分配给该列的名称,但它只是按顺序替换列名, 并且不匹配它们。
这是一个问题,因为并非所有列名都需要替换,并且不同 ID 的 csvs 中这些列的顺序不同。
如何将原始列名与我想用来替换它们的字符串相匹配?
先尝试重命名,如果重名应该会容易很多。
library(stringr)
str_replace_all(c("Tree ","Bare areas")," ",".")
[1] "Tree." "Bare.areas"
我正在遍历一系列 id,为每个 id 加载 2 个 csvs,并对它们进行一些分析。我需要重命名 2 个 csvs 之一的列以匹配另一个的行值。我需要在循环内执行此操作,以便将它应用于每个 id 的 csvs。
我试过像这样重命名列:
`names(LCC_diff)[2:length(LCC_diff)] <- c("Bare.areas" = "Bare areas",
"Tree." = "Tree ", "Urban.areas" = "Urban areas",
"Water.bodies" = "Water bodies")`
其中 LCC_diff 是一个数据框,每对中的第一个值是原始列名,第二个是我想分配给该列的名称,但它只是按顺序替换列名, 并且不匹配它们。
这是一个问题,因为并非所有列名都需要替换,并且不同 ID 的 csvs 中这些列的顺序不同。
如何将原始列名与我想用来替换它们的字符串相匹配?
先尝试重命名,如果重名应该会容易很多。
library(stringr)
str_replace_all(c("Tree ","Bare areas")," ",".")
[1] "Tree." "Bare.areas"