R更改列表中每个数据集的变量名

R changing a variable name for each data set within a list

我有一个数据帧列表sub_lst。在每个数据框中,我想更改第 1 列中变量的名称。变量名称在所有数据框中都不同,因此我假设我需要使用索引。

我写了下面的函数:

col1name <- function(x, na.rm=TRUE){names(x)[1] = "Time" }

然后我将其传递给 lapply:

sub_lst_new <- lapply(sub_lst, col1name)

但是,这只是将数据帧替换为 [1] "Time"

谁能帮帮我 - 我确定有一个非常简单的解决方案,但我整个上午都在用头撞桌子!

这应该有效

sub_list <- lapply(sub_list, function(x) {names(x)[1L] <- 'Time'; x})
sapply(sub_list, names)[1,]
#[1] "Time" "Time" "Time"

数据

set.seed(24)
sub_list <- lapply(1:3, function(i)
  as.data.frame(matrix(sample(0:9, 4*5, replace=TRUE), ncol=4)))