我有两个表,我想将它们输出到几个文件。该表看起来像:
df1 ---
Colors
Red
Blue
和
df2 ---
Colors Name Rate
Red A 3
Red B 5
Red C 6
Blue D 2
Blue E 8
我想根据颜色将此数据写入csv文件。这意味着文件一将包含
Colors Name Rate
Red A 3
Red B 5
Red C 6
和文件二将包含
Colors Name Rate
Blue D 2
Blue E 8
我试过
output_file <- c()
for (i in 1:nrow(df1)){
if (df1$Colors[i] == df2$Colors[i]){
output_file[i] <- df2[i]
write.csv(output_file, paste("Color_", i, ".csv"), row.names = F)
}
}
但语法错误,我找不到它们!语法错误在哪里?
答案 0 :(得分:1)
您只需要df2
您可以使用group_by(...)
和do(...)
library(tidyverse)
path <- "C:/MyDir/"
mtcars %>%
group_by(cyl) %>%
do(write_tsv(., paste0(path, unique(.$cyl))))
或split(...)
和map(..., ...)
mtcars %>%
split(.$cyl) %>%
map(., ~write_tsv(.x, paste0(path, unique(.$cyl))))