R повторится автоматически: создайте новый df, если измените переменную - PullRequest
0 голосов
/ 19 января 2020

У меня есть простая функция группировки, которую мне нужно применить ко многим различным случаям в одном кадре данных. Для каждого изменения символа в «сценарии» я хотел бы создать новый фрейм данных. Спасибо за вашу помощь

    scenario_1 <- subset(data_ag, scenario == "0.1-0.3-0.01-1-0.3-0.35") 
    scenario_1 <- arrange(scenario_1, desc(X.step.))

, и я хотел бы иметь что-то вроде:

    scenario_n+1 <- subset(data_ag, when scenario changes) 
    scenario_n+1 <- arrange(scenario_n+1, desc(X.step.))

1 Ответ

0 голосов
/ 19 января 2020

Можно использовать функцию 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 для иллюстрации списка результирующих фреймов данных.

enter image description here

Для доступа любой из фреймов данных в списке, используйте оператор извлечения с именем сценария:

# 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
>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...