0

githubリポジトリを取得して、その内容を一時ディレクトリに解凍できるようにしたいと思います。devtoolsにinstall_githubの関数があることは知っていますが、インストールしたくありません。これは、すべてのgithubリポジトリにもっと一般化できます。

これが私が試したことです:

url <- "https://github.com/trinker/reports/zipball/master"
tmp <- tempfile( fileext = ".zip" )
download.file(url, tmp)
unzip(tmp, exdir = tempdir())  

そして、これは次の結果になります。

Warning message:
In unzip(tmp, exdir = tempdir()) : internal error in unz code

繰り返しますが、インストールするつもりはありませんが、終了時に削除する一時ディレクトリ内の内部ファイルにアクセスできます。

4

1 に答える 1

5

downloaderダウンロード インターフェイスを簡素化するパッケージを使用します。ここにあなたの目標を達成するための機能があります。

#' Download and unzip Github repo to current directory
#'
#' @params repo name of github repository
#' @params user github user name
download_repo <- function(repo, user){
  require(downloader)
  url <- sprintf("https://github.com/%s/%s/archive/master.zip", user, repo)
  tmp <- tempfile(fileext = ".zip")
  download(url, tmp)
  unzip(tmp)  
}

# download_repo('reports', 'trinker')
于 2013-03-01T20:37:03.747 に答える