如何在R中导出列拆分数据帧的子集?

时间:2019-12-12 20:41:17

标签: r dplyr export

我需要导出数据帧的两个子集,如下所示:

df <- data.frame(factor = c("A", "A", "B", "B"), var = "value")

df
  factor   var
1      A value
2      A value
3      B value
4      B value

我使用group_split()按因子划分了数据帧,但似乎无法将结果子集导出为.csv。这些子集都应具有变量名:

dfa
  factor   var
1      A value
2      A value

dfb
  factor   var
1      B value
2      B value

感谢您的帮助!

3 个答案:

答案 0 :(得分:3)

一个选项是split,然后使用imapsplitlist提供'factor'levels的名称,并使用imap.y将获得每个{{1} }元素,可以list d(paste-做同样的事情,但要进行更多检查)

str_c

答案 1 :(得分:2)

您可以使用sapply来遍历dataframes创建的group_split的列表:

library(dplyr)

df %>% 
  group_split(factor) %>% 
  sapply(., function (x) 
              write.csv(x, file=paste0("df", unique(x$factor), ".csv")))

答案 2 :(得分:0)

你能做吗

dfa = df[df$factor == "A",]

dfb = df[df$factor == "B",]

write.csv(dfa,"Name Out A.csv")

write.csv(dfb,"Name Out B.csv")