我正在尝试提取存储在Dropbox(文件夹)中的一些功能。
在我尝试解压缩文件之前一切顺利。这是一个例子:
library("R.utils")
temp <- tempfile()
temp<-paste(temp,".gz",sep="")
download.file("http://www.dropbox.com/sh/dzgrfdd18dljpj5/OyoTBMj8-v?dl=1",temp)
untar(temp,compressed="gzip",exdir=dirname(temp))
我在这里收到错误:
Error in rawToChar(block[seq_len(ns)]) :
embedded nul in string: 'PK\003\004\024\0\b\b\b....
理想情况下,我会加载文件夹中的所有函数,如下所示:
sourceDirectory(dirname(temp))
......但我需要先解开他们。我可以在Windows中打开存档但在R中我得到上面的错误。有人可以帮忙吗?我尝试使用解压缩但这只适用于从dropbox下载的较小文件夹(例如上面的那个),较大的文件只能用作gzip格式(至少根据我的经验)。
答案 0 :(得分:3)
# use the httr package
library(httr)
# define your desired file
u <- "http://www.dropbox.com/sh/dzgrfdd18dljpj5/OyoTBMj8-v?dl=1"
# save the file to a .zip
tf <- paste0( tempfile() , '.zip' )
# create a temporary directory
td <- tempdir()
# get the file
fc <- GET(u)
# write the content of the download to a binary file
writeBin(content(fc, "raw"), tf)
# unzip it.
unzip( tf , exdir = td )
# locate all files in this directory
af <- list.files( td , recursive = TRUE )
# subset the files to the ones ending with R
R.files <- af[ substr( af , nchar( af ) , nchar( af ) ) == 'R' ]
# set your working directory
setwd( td )
# source 'em
for ( i in R.files ) source( i )
# see that they're loaded
ls()
答案 1 :(得分:-1)
也许您必须使用选项mode='wb'
作为download.file。