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