如何修改不能直接调用的数据框?

时间:2019-10-04 17:17:33

标签: r

我正在为该几个数据帧自动创建一个函数。我该如何称呼这些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的数据帧

1 个答案:

答案 0 :(得分:2)

最好不要在全局环境中创建多个对象。如果已经创建,则将它们加载到list中,并在list中进行所有更改/变换/变异等。与寻找在全局环境中浮动的对象相比,在list中进行读取/写入将变得更加容易

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