r - 将数据帧拆分为多个数据帧并保存在环境中

时间:2018-06-11 11:39:58

标签: r dataframe split

这是对这个问题的跟进: split into multiple subset of dataframes with 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 :(得分:1)

如果您希望自动创建数据框名称,可以尝试这样的方法。

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), ")")))