Действительно ли возможно создать новые имена переменной на лету?
Я хотел бы считать кадры данных из списка в новые переменные с числами в конце. Что-то как orca1, orca2, orca3...
Если я пробую что-то как
paste("orca",i,sep="")=list_name[[i]]
Я получаю эту ошибку
target of assignment expands to non-language object
Есть ли иначе вокруг этого?
Используйте assign
:
assign(paste("orca", i, sep = ""), list_name[[i]])
Мне кажется, что лучше использовать список, чем использовать orca1
, orca2
, и т.д., ... тогда это будет orca [1]
, orca [2]
, ...
Обычно вы составляете список переменных, различаемых только номер, потому что этот номер будет удобным способом доступа к ним позже.
orca <- list()
orca[1] <- "Hi"
orca[2] <- 59
В противном случае assign
- это именно то, что вам нужно.
Еще одно сложное решение - присвоить имя элементам списка и прикрепить
его:
list_name = list(
head(iris),
head(swiss),
head(airquality)
)
names(list_name) <- paste("orca", seq_along(list_name), sep="")
attach(list_name)
orca1
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 1 5.1 3.5 1.4 0.2 setosa
# 2 4.9 3.0 1.4 0.2 setosa
# 3 4.7 3.2 1.3 0.2 setosa
# 4 4.6 3.1 1.5 0.2 setosa
# 5 5.0 3.6 1.4 0.2 setosa
# 6 5.4 3.9 1.7 0.4 setosa