2

ドロップボックス(フォルダー内)に保存されているいくつかの関数を抽出しようとしています。

ファイルを解凍しようとするまで、すべてうまくいきます。次に例を示します。

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 でアーカイブを開くことはできますが、RI では上記のエラーが発生します。誰でも助けることができますか?unzip を使用しようとしましたが、これはドロップボックスからダウンロードした小さなフォルダー (上記のフォルダーなど) でのみ機能し、大きなフォルダーは gzip 形式でのみ機能します (少なくとも私の経験では)。

4

2 に答える 2

2
# 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()
于 2013-01-03T12:31:26.400 に答える
-1

mode='wb'おそらく、download.fileのオプションを使用する必要があります。

于 2013-01-03T12:16:46.290 に答える