簡體   English   中英

在 map function 循環中使用文件名保存 csv 個文件

[英]Save csv files using filenames in a map function loop

我正在使用 map function 在一個文件夾中循環一些 csv 文件。我想使用 csv 的名稱的切片版本來保存循環的結果。但是在嘗試將結果保存到 csv 時出現錯誤.這是我的代碼

library(tidyverse)
library(fs)
library(dismo)

file_paths <- fs::dir_ls("loop/")

file_paths %>%
  map(function (path){
    all_data <- read_csv(path, show_col_types = FALSE)
    name <- tools::file_path_sans_ext(basename(file_paths))
    print(name)
    t_max <- all_data[,c(2)]
    t_min <- all_data[, c(3)]
    rain_fall <- all_data[,c(4)]
    res <- data.frame(biovars(t_max, t_min, rain_fall))
    myfile = sprintf("%s_bio.csv", name)
    write_csv(res, file=myfile, col_names = TRUE)
  })

錯誤:

Error in if (is_url(path)) { : the condition has length > 1

您在full_paths中使用map的完整向量,您應該只使用單一path

file_paths %>%
  map(function (path){
    all_data <- read_csv(path, show_col_types = FALSE)
    name <- tools::file_path_sans_ext(basename(path))
    print(name)
    t_max <- all_data[,c(2)]
    t_min <- all_data[, c(3)]
    rain_fall <- all_data[,c(4)]
    res <- data.frame(biovars(t_max, t_min, rain_fall))
    myfile = sprintf("%s_bio.csv", name)
    write_csv(res, file=myfile, col_names = TRUE)
  })

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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