【问题标题】:Purrr, write_csv and naming thingsPurrr、write_csv 和命名事物
【发布时间】:2020-10-13 12:47:14
【问题描述】:

这是一个多步骤的过程,所以让我试着解释一下发生了什么......

我正在努力将大约 2000 个文件写入 csv。这是一个地理编码项目,并决定使用 tidygeocoder,不幸的是,这会导致超时错误,但它在我的工作流程中运行良好。

第一个过程是从 csv 中读取各种文件,并为它们命名。只测试前 4 个文件,以便我正确处理。

将 4 个文件名传递给 read_csv,然后设置名称,最后在每个文件中都有一个 Combine_Address 列,我用它来进行地理编码。再次没有问题。但是,最后一个问题是命名。

四个文件中的每一个都应该有一个唯一的名称,但我始终以错误消息结尾

stream_delim_(df, path, ..., bom = bom, quote_escape = quote_escape) 中的错误: 无效连接

这是由这两个原因造成的......

  • write_csv(path = here("excel_output", "geocode_output", paste0(names(.x),"_geocode.csv"))))

  • write_csv(path = here("excel_output", "geocode_output", glue("{names(.x)}_geocode.csv")))))
# Loop geocode over .csv and export -------------------

files_to_read <- str_subset(list.files(here("excel_output", "csv_output"),
                pattern = ".csv$", full.names = T),
                ".csv")

file_names <- str_subset(list.files(here("excel_output", "csv_output"),
                pattern = ".csv$"),
                ".csv") %>% 
  str_remove(., ".csv")


files_to_read[1:4] %>% 
  map(~read_csv(.x)) %>%
  set_names(nm = file_names[1:4]) %>% 
  walk(~.x %>%
         geocode(Combine_Address) %>%
         write_csv(path = here("excel_output", "geocode_output", "_geocode.csv")))

上面的代码运行良好,但只输出了一个名为“_geocode.csv”的文件,但是paste0和glue都产生了代码错误。不知道现在该尝试什么。任何见解将不胜感激。

【问题讨论】:

    标签: r tidyverse geocoding


    【解决方案1】:

    您可以在一个 map 调用中完成此操作。试试看:

    library(readr)
    
    files_to_read[1:4] %>% 
      purrr::map(~read_csv(.x) %>%  
                   geocode(Combine_Address) %>% 
                   write_csv(sprintf('geocode_output_%s_geocode.csv', basename(.x))))
    

    【讨论】:

    • 非常棒,效果很好!...虽然 sprintf 是做什么的?我在研究问题时看到它弹出几次,但帮助文档不是很有帮助
    • sprintf 类似于paste0,但我认为它更简洁,因为像glue 一样,您可以在字符串之间指定一个占位符。你可以用paste0 写同样的东西,比如paste0('geocode_output_',basename(.x), '_geocode.csv')
    猜你喜欢
    • 1970-01-01
    • 2011-11-26
    • 2021-05-17
    • 1970-01-01
    • 2018-03-18
    • 1970-01-01
    • 1970-01-01
    • 2022-08-09
    • 2012-09-12
    相关资源
    最近更新 更多