[英]Write output to csv using a for loop function in R
我有兩個表,我想將它們輸出到幾個文件。 該表如下所示:
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)
}
}
但是是語法錯誤,我找不到它們! 語法錯誤在哪里?
您只需要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))))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.