当下载链接以"/download"结尾时,将 zip 文件下载到 R



我的问题与这篇文章类似,但解决方案建议似乎不适用。

我有很多压缩数据存储在一个在线服务器(B2Drop),它提供了一个扩展"/download" instead of ".zip"的下载链接。我一直无法让这里描述的方法工作。

我已经创建了一个测试下载页面https://b2drop.eudat.eu/s/K9sPPjWz3jxtXEq,其中下载链接https://b2drop.eudat.eu/s/K9sPPjWz3jxtXEq/download可以通过右键单击下载按钮获得。下面是我的脚本:

temp <- tempfile()
download.file("https://b2drop.eudat.eu/s/K9sPPjWz3jxtXEq/download",temp, mode="wb")
data <- read.table(unz(temp, "Test_file1.csv"))
unlink(temp)

当我运行它时,我得到错误:

download.file("https://b2drop.eudat.eu/s/K9sPPjWz3jxtXEq/download"临时模式="wb")尝试URL 'https://b2drop.eudat.eu/s/K9sPPjWz3jxtXEq/download'内容类型'application/zip'长度558字节已下载558字节

data <- read。表(unz (temp,"Test_file1.csv")打开错误。连接(文件," rd"):无法打开连接警告信息:在开放。连接(文件,"rt"):无法在zip文件"C:UsersUser_nameAppDataLocalTempRtmpMZ6gXifile3e881b1f230e"中找到文件"Test_file1.csv">

通常表示R查找文件的工作目录有问题。在本例中,应该是温度wd

您的内部路径错误。您可以使用list=TRUE来列出存档中的文件,类似于命令行实用程序的-l参数。

unzip(temp, list=TRUE)
#                  Name Length                Date
# 1 Test/Test_file1.csv    256 2021-09-27 10:13:00
# 2 Test/Test_file2.csv    286 2021-09-27 10:14:00

使用read.csvread.table更好,因为它是逗号分隔的。

data <- read.csv(unz(temp, "Test/Test_file1.csv"))
head(data, 3)
#   ID Variable1 Variable2 Variable Variable3
# 1  1         f     54654       25        t1
# 2  2         t       421       64        t2
# 3  3         x      4521       85        t3

相关内容

  • 没有找到相关文章

最新更新