【发布时间】:2020-03-09 12:57:58
【问题描述】:
我正在尝试遍历 FTP 站点上的所有 CSV 文件,并将具有特定文件名的 CSV 内容上传到数据库。
到目前为止,我已经能够
-
使用...访问 FTP
getURL((url, userpwd = userpwd, ftp.use.epsv = FALSE, dirlistonly = TRUE), -
使用...获取文件名列表
unlist(strsplit(filenames, "\r\n"), -
并创建一个包含完整网址列表的数据框(例如ftp://sample@ftpserver.name.com/samplename.csv),使用...
for (i in seq_along(myfiles)) { url_list[i,] <- paste(url, myfiles[i], sep = '') }
如何循环遍历此数据框,过滤某些文件名,以便使用相关 CSV 中的所有数据创建一个新数据框? (一半文件命名为 Type1SampleName,一半命名为 Type2SampleName)
然后我会将这些数据上传到数据库。
谢谢!
【问题讨论】:
-
文件名有什么变化?数字?顺便说一句,您不需要循环或数据框:
urls <- paste0(url, myfiles)。 -
我实际上想出了如何使用 grepl
myfiles <- myfiles[grepl("Type1", myfiles)]过滤文件名你的建议很有魅力——比循环简单得多。我是否正确地说这会创建一个包含所有 URL 的向量?我尝试使用以下 CSV URL 加载数据:mydata <- lapply(urls, getURL, userpwd = userpwd, connecttimeout = 60)这将创建一个列表,其中包含来自每个 CSV 的所有原始、未格式化的数据。我现在正试图弄清楚如何将这些数据加载到数据框中。数据看起来像:\r\n\",\"7.775\",\"7.875\",\"-0.025\"\r\n" 有什么想法吗?谢谢。 -
有什么想法吗?快到了!