Предположим, у меня есть пустой список grid
. Можно ли использовать assign() для назначения нескольких кадров данных для элементов списка?R: using 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)))
}
Желаемый результат: (так как тип всегда будет "")
> 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
Что случилось со всеми другими способами присвоения элементов списка, который заставляет вас думать, что вам нужно использовать 'assign'? – joran
Ну, я пытаюсь использовать 'ifelse()' внутри 'assign()'. Мне нужно условно выбирать между двумя кадрами данных и назначать выбранный блок данных элементу в списке. Если есть более чистая альтернатива использованию 'assign()' в этом сценарии, это будет замечательно – ALKI
Можем ли мы увидеть код @Chani? не могут полностью изобразить 'ifelse' и' assign' вместе? – RichAtMango