r - разбить фрейм данных на несколько фреймов и сохранить в среде - PullRequest
0 голосов
/ 11 июня 2018

Это продолжение этого квеста: разделить на несколько подмножеств фреймов данных с помощью dplyr: group_by? .

Воспроизводимый пример:

test <- data.frame(a = c(1,1,1,2,2,2,3,3,3), b = c(1:9))

Меня интересует, как сохранить кадры данных из следующего вывода:

 test %>%
  group_by(a) %>%
  nest() %>%
  select(data) %>%
  unlist(recursive = F)

как отдельные кадры данных в среде?Требуемый результат:

data1 <- data.frame(a = c(1,1,1), b = c(1:3))
data2 <- data.frame(a = c(2,2,2), b = c(4:6))
data3 <- data.frame(a = c(3,3,3), b = c(7:9))

Существует много групп, поэтому требуется автоматизация с указанием: data1, data2, data3, ... data (n) фреймов данных.

1 Ответ

0 голосов
/ 11 июня 2018

Если вы хотите, чтобы имена фреймов данных также создавались автоматически, вы можете попробовать что-то вроде этого.

test <- data.frame(a = c(1,1,1,2,2,2,3,3,3), b = c(1:9))
test

n <- length(unique(test$a))

eval(parse(text = paste0("data", seq(1:n), " <- ", split(test, test$a))))
eval(parse(text = paste0("data", seq(1:n), " <-  as.data.frame(data", seq(1:3), ")"))) 
...