通过更改值来更改数据框的列名 - R

oer*_*cim 6 r dataframe

让我有以下数据框。

df.open<-c(1,4,5)
df.close<-c(2,8,3)

df<-data.frame(df.open, df.close)



> df
  df.open df.close
1       1        2
2       4        8
3       5        3
Run Code Online (Sandbox Code Playgroud)

我想更改包含“a”的“打开”和包含“b”的“关闭”的列名:

即我想获得以下数据框:

  a b
1 1 2
2 4 8
3 5 3
Run Code Online (Sandbox Code Playgroud)

我有很多这样的数据框。预值(这里是“df”)正在改变,但“打开”和“关闭”是固定的。

非常感谢。

akr*_*run 5

我们可以创建一个重用的函数

f1 <- function(dat) {
     names(dat)[grep('open$', names(dat))] <- 'a'
      names(dat)[grep('close$', names(dat))] <- 'b'
     dat
}
Run Code Online (Sandbox Code Playgroud)

并应用在数据上

df <- f1(df)
Run Code Online (Sandbox Code Playgroud)

-输出

df
  a b
1 1 2
2 4 8
3 5 3
Run Code Online (Sandbox Code Playgroud)

如果这些数据集在 list

lst1 <- list(df, df)
lst1 <- lapply(lst1, f1)
Run Code Online (Sandbox Code Playgroud)