2014-09-27 71 views
1

我有一個數據框dat,其中包含一個ID變量和幾個帶URL的變量以下載聲音文件。使用用戶名和密碼通過https下載多個文件

dat <- data.frame(id=c(1, 2, 3, 4), 
        recording1=c("someURL", "someURL", "someURL", "someURL"), 
        recording2=c("someURL", "someURL", "someURL", "someURL"), 
        recording3=c("someURL", "someURL", "someURL", "someURL"), 
        recording4=c("someURL", "someURL", "someURL", "someURL")) 

我需要下載每個文件(以N×5-1矩陣的基本上每個細胞),並保存與列名和觀測ID的文件。例如:

for (i in 2:length(dat)) { 
    for (r in 1:nrow(dat)) { 
    download.file(as.character(dat[r,i]), 
        destfile=paste(names(dat)[i], dat$id[r], "wav", sep="."), 
        method="curl")) 
    } 
} 

根據download.file()的幫助,此功能不支持https。我如何修改我的方法來使用https幷包含用戶名(電子郵件)和密碼?

sessionInfo() 
# R version 3.0.2 (2013-09-25) 
# Platform: x86_64-apple-darwin10.8.0 (64-bit) 

回答

2

給這個httr包一展身手,並使用write_disk選項GET

GET(as.character(dat[r, i]), 
    authenticate("username", "password"), 
    write_disk(destfile=paste(names(dat)[i], dat$id[r], "wav", sep="."))) 

(更新以反映需要驗證其OP提醒我&固定在評論)

+1

這效果很好。我在'write_disk'之前添加了'authenticate(「username」,「password」)''。 – 2014-09-27 20:01:13

+0

Argh。對於那個很抱歉。我將這一點添加到後人的答案中。 – hrbrmstr 2014-09-27 20:03:29

+0

正在運行。非常迷人的看... – 2014-09-27 20:07:44

相關問題