Поскольку RCurl::getURL
возвращает прямой HTTP-ответ, в данном случае содержимое CSV, рассмотрите возможность расширения вызова функции lapply
для передачи результата в read.csv
с использованием text аргумент:
# VECTOR OF URLs
urls <- paste0(url, myfiles[grep("Type1", myfiles])
# LIST OF DATA FRAMES FROM EACH CSV
mydata <- lapply(urls, function(url) {
resp <- getURL(url, userpwd = userpwd, connecttimeout = 60)
read.csv(text = resp)
})
В качестве альтернативы getURL
поддерживает функцию обратного вызова с аргументом write :
В качестве альтернативы, если задано значение для параметра write
, это возвращается Это позволяет вызывающей стороне создать обработчик в вызове и вернуть его обратно. Это избавляет от необходимости явно создавать и назначать его, а затем вызывать getURL
и затем обращаться к результату. Вместо этого 3 шага могут быть встроены в один вызов.
# USER DEFINED METHOD
import_csv <- function(resp) read.csv(text = resp)
# LONG FORM NOTATION
mydata <- lapply(urls, function(url)
getURL(url, userpwd = userpwd, connecttimeout = 60, write = import_csv)
)
# SHORT FORM NOTATION
mydata <- lapply(urls, getURL, userpwd = userpwd, connecttimeout = 60, write = import_csv)