首页 > 解决方案 > 如何修改无法直接调用的数据框?

问题描述

我正在自动为这几个数据框创建一个函数。我怎样才能调用这些 data.frames 来改变它们?

例如,假设我创建了一个数据,其中每个项目都意味着成为一个数据框,如下所示:

assign(paste0("d","f"),c(tree,fox,river))

然后我从列表中取出一个项目并用它来命名一个数据框。

assign(paste(get(paste0("d","f"))[1]),as.data.frame(c(1,2,3))

所以现在如果我这样做:

get(paste(get(paste0("d","f"))[1]))

它返回一个带有 1,2,3 的数据框

这是我的问题,我希望能够修改这些项目,例如

get(paste(get(paste0("d","f"))[1]))[1] <- 4

#So that now if i do

get(paste(get(paste0("d","f"))[1]))

它返回一个带有 4,2,3 的数据框

标签: r

解决方案


最好不要在全局环境中创建多个对象。如果它已经创建,请将它们加载到 alist中并在list. 它会使读/写更容易,list而不是在全局环境中寻找这些漂浮的对象

lapply(mget(paste0("df", 1:3)), function(x) {x[[1]] <- 4; x})

推荐阅读