如何使用字符串访问数据框并修改数据框?

How can I access a data frame using string and modify the data frame?

得到了数据框列表,比如c(df01,df02,df03).

每个数据框有三列,c("A", "B", "C")

我想编写一个 for 循环来修改每个数据框的每一列。我试过了:

for (df in c("df01", "df02", "df03")) {
   for (col in c("A", "B", "C")) {
      get(df)[[col]] <- 0
   }
}

我从 this post 那里了解到,我们不能为 R 中的 get() 函数的结果赋值。

我也试过了

assign(df[[col]], 0)

但这也行不通。 assign()函数只是给name赋值,但是这里的df[[col]]不是name,而是column。

我该如何解决这个问题?

您可以获取列表中的数据框并使用 lapply 更改列

df_vec <- c("df01","df02","df03")
col_vec <- c("A","B","C")
result <- lapply(mget(df_vec), function(x) {x[col_vec] <- 0;x})

要将这些更改反映在原始数据框中,请使用 list2env :

list2env(result, .GlobalEnv)