我正在为该几个数据帧自动创建一个函数。我该如何称呼这些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的数据帧
答案 0 :(得分:2)
最好不要在全局环境中创建多个对象。如果已经创建,则将它们加载到list
中,并在list
中进行所有更改/变换/变异等。与寻找在全局环境中浮动的对象相比,在list
中进行读取/写入将变得更加容易
lapply(mget(paste0("df", 1:3)), function(x) {x[[1]] <- 4; x})