Использование 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) 

Ответы

Ответ 1

Это должно работать

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")