Можно использовать функцию split()
, чтобы разбить один фрейм данных на список фреймов данных на основе значения факторной переменной. Здесь мы создадим некоторые примеры данных и проиллюстрируем использование split()
.
rawData<- "scenario,x,y,z
scenario-1,1,2,3
scenario-1,3,5,7
scenario-2,10,20,30
scenario-2,30,40,50
scenario-3,50,60,70"
data <- read.csv(textConnection(rawData),stringsAsFactors=TRUE)
# since scenario is a factor variable, we can now use it
# with split() to create one data frame per value of scenario
scenarioList <- split(data,data$scenario)
Мы будем использовать средство просмотра объектов в RStudio для иллюстрации списка результирующих фреймов данных.
Для доступа любой из фреймов данных в списке, используйте оператор извлечения с именем сценария:
# print the first data frame in the list
scenarioList[["scenario-1"]]
... и выводом:
> scenarioList[["scenario-1"]]
scenario x y z
1 scenario-1 1 2 3
2 scenario-1 3 5 7
>