Судя по вашему комментарию, вы пытаетесь сохранить результаты split
в виде отдельных фреймов данных.
Вы можете сделать это, используя assign
dfL <- split(iris, iris$Species)
for (i in 1:length(dfL)){
assign(paste0("df_", names(dfL[i])), dfL[i])
# added the print line so you can see the names of the objects that are created
print(paste0("df_",names(dfL[i])))
}
[1] "df_setosa"
[1] "df_versicolor"
[1] "df_virginica"
, который создаст фреймы данных df_setosa
, df_virginica
и df_versicolor
В качестве альтернативы, если вы довольны текущими именами объектов, вы можете просто использовать:
list2env(dfL,envir=.GlobalEnv)
, который сохранит каждый элемент списка как объект, используя имя объекта в списке.Таким образом, вместо префикса df_
вы бы просто имели объекты setosa
, virginica
и versicolor
.
Редактировать: в качестве более простого способаприсвойте индивидуальные имена каждому созданному объекту, непосредственно указав names
из dfL
- это хорошее чистое решение:
names(dfL) <- paste0("df_",names(dfL))
list2env(dfL,envir=.GlobalEnv)
Таким образом, вам не нужно писать цикл for
и по-прежнему получать объектимена с полезным префиксом.