Опитвам се да извлича някои функции, съхранени в 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 03 04 24 bbb....
В идеалния случай бих заредил всички функции в папката по следния начин:
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.