我有一个数据框dat
,其中包含一个ID变量和几个带有URL的变量,用于下载声音文件。
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 x 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)
答案 0 :(得分: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提醒我并在评论中修复的身份验证的需要)