/ / dropbox извличане на папки в R - r, tar

dropbox папка извличане в R - R, катран

Опитвам се да извлича някои функции, съхранени в 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: "PK030424bbb....

В идеалния случай бих заредил всички функции в папката по следния начин:

sourceDirectory(dirname(temp))

... но аз трябва да мога да ги деартирам първо. Мога да отворя архива в Windows, но в R получавам по-горе грешка. Може ли някой да помогне? Опитах се да използвам unzip, но това работи само с по-малки папки, изтеглени от dropbox (като този по-горе), по-големите работят само като gzip формат (поне в моя опит).

Отговори:

3 за отговор № 1
# 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 за отговор № 2

Може би трябва да използвате опцията mode="wb" за файла download.file.