通过 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"