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