簡體   English   中英

使用R中的for循環功能將輸出寫入CSV

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM