web-dev-qa-db-ja.com

Rを使用してFTPサーバーから最新のファイルをダウンロードする

という名前のファイルがいくつかあります

FileA2014-03-05-10-24-12
FileB2014-03-06-10-25-12

「2014-03-05-10-24-12」の部分は「年/日/月/時間/分/秒/」を意味します。これらのファイルはftpサーバーにあります。 Rを使用してftpサーバーに接続し、日付に基づいて最新のファイルをダウンロードしたいと思います。

RCurlとdirlistonlyを使用して、コンテンツを一覧表示しようとしています。次のステップは、最新のファイルを解析して見つけることです。まだまだありません...

library(RCurl)
getURL("ftpserver/",verbose=TRUE,dirlistonly = TRUE) 
24
Alexander

これは動作するはずです

library(RCurl)
url <- "ftp://yourServer"
userpwd <- "yourUser:yourPass"
filenames <- getURL(url, userpwd = userpwd,
             ftp.use.epsv = FALSE,dirlistonly = TRUE) 

-

times<-lapply(strsplit(filenames,"[-.]"),function(x){
  time<-paste(c(substr(x[1], nchar(x[1])-3, nchar(x[1])),x[2:6]),
        collapse="-")
  time<-as.POSIXct(time, "%Y-%m-%d-%H-%M-%S", tz="GMT")
})
ind <- which.max(times)
dat <- try(getURL(paste(url,filenames[ind],sep=""), userpwd = userpwd))

datには最新のファイルが含まれるようになりました

それを再現可能にするために:他のすべては、上部の代わりにこれを使用できます

filenames<-c("FileA2014-03-05-10-24-12.csv","FileB2014-03-06-10-25-12.csv") 
28
Rentrop