假设我有一个空列表grid
。是否可以使用assign()将多个数据帧分配给列表元素?
grid <- list()
assign(grid[[1]],data.frame(x=1:4,y=5:8))
assign(grid[[2]],data.frame(x=2:4,y=6:8))
这样你就可以获得如下输出:
> grid
[[1]]
x y
1 5
2 6
3 7
4 8
[[2]]
x y
2 6
3 7
4 8
代码:
grid <- list()
type = "a"
for(k in 1:3){
assign(paste0("grid[[",k,"]]"),ifelse(type=="a",
data.frame(x=1:4,y=5:8),
data.frame(x=2:4,y=6:8)))
}
所需的输出:(因为类型总是“a”)
> grid
[[1]]
x y
1 5
2 6
3 7
4 8
[[2]]
x y
1 5
2 6
3 7
4 8
[[3]]
x y
1 5
2 6
3 7
4 8
答案 0 :(得分:1)
我可能遗漏了一些东西,但我不明白为什么你需要使用assign()
?这不是你想做的吗?
grid <- list()
type = "a"
for(k in 1:3){
if(type=="a") grid[[k]] <- data.frame(x=1:4,y=5:8)
}
编辑:
for(k in 1:3){
if(type=="a") grid[[k]] <- data.frame(x=1:4,y=5:8)
if(type=="b") grid[[k]] <- data.frame(x=2:4,y=6:8)
}