18

全世界が常に SSL を使用しようと躍起になっている現在 (これは非常に理にかなった決定です)、github および関連サービスを使用して csv ファイルを保存してきた私たちの中には、少し問題を抱えている人もいます。URL から読み取る場合、read.csv() 関数は SSL をサポートしません。これを回避するために、SSL 歌舞伎ダンスと呼ばれるちょっとしたダンスをしています。RCurl でテキスト ファイルを取得し、一時ファイルに書き込み、read.csv() で読み取ります。これを行うよりスムーズな方法はありますか?より良い回避策はありますか?

SSL カブキの簡単な例を次に示します。

require(RCurl)
myCsv <- getURL("https://gist.github.com/raw/667867/c47ec2d72801cfd84c6320e1fe37055ffe600c87/test.csv")
temporaryFile <- tempfile()
con <- file(temporaryFile, open = "w")
cat(myCsv, file = con) 
close(con)

read.csv(temporaryFile)
4

6 に答える 6

14

ファイルに書き込む必要はありません - textConnection() を使用するだけです

require(RCurl)
myCsv <- getURL("https://gist.github.com/raw/667867/c47ec2d72801cfd84c6320e1fe37055ffe600c87/test.csv")
WhatJDwants <- read.csv(textConnection(myCsv))
于 2010-11-09T08:53:46.397 に答える
12

Dirk のアドバイスを使用して調査しmethod=""た結果、外部の RCurl パッケージに依存しない、もう少し簡潔なアプローチが得られました。

temporaryFile <- tempfile()
download.file("https://gist.github.com/raw/667867/c47ec2d72801cfd84c6320e1fe37055ffe600c87/test.csv",destfile=temporaryFile, method="curl")
read.csv(temporaryFile)

しかし、私はただ設定することはできないようですoptions("download.file.method"="curl")

于 2010-11-08T19:13:38.770 に答える
8

はい --およびそのいとこhelp(download.file)によって指されているものを参照してください。read.csv()そこmethod=にある議論は次のとおりです。

method ファイルのダウンロードに使用するメソッド。現在、「internal」、「wget」、「curl」、および「lynx」のダウンロード方法が利用可能で、値は「auto」です。「詳細」を参照してください。メソッドはオプション "download.file.method" で設定することもできます: options() を参照してください。

次に、このオプションを使用して次のことを行いますoptions()

download.file.method: download.file に使用するメソッド。現在、ダウンロード方法は「internal」、「wget」、「lynx」が利用可能です。method = "auto" が選択されている場合、このオプションのデフォルトはありません: download.file を参照してください。

RCurl パッケージではなく 、外部プログラムを使用します。 curl

編集:私は半分正しく、半分間違っていたようです。read.csv()らが選択した方法を使用しない場合、手動で採用する必要がdownload.file()あります (その後、curlまたは他の選択された方法を使用します)。使用する他の機能download.file()(パッケージのインストールや更新など) は、オプションを設定することで利益を得ることができますが、https を介した csv ファイルに関する JD の最初のクエリでは、ダウンロードされたファイルのdownload.file()前に明示が必要です。read.csv()

于 2010-11-08T16:39:06.733 に答える
6

R コアは、R 接続を C API として開く必要があります。私は過去にこれを提案しました:

https://stat.ethz.ch/pipermail/r-devel/2006-October/043056.html

応答なし。

于 2010-11-08T16:38:30.950 に答える
0

Dropbox が https:// でリンクを表示する方法を変更して以来、上記の解決策はどれも機能しなくなっていることがわかりました。幸いなことに、この発見をしたのは私が初めてではなく、解決策が Christopher Gandrud によって r-bloggers に投稿されました。

http://www.r-bloggers.com/dropbox-r-data/

repmis パッケージとその依存関係をインストールした後、このアプローチはうまくいきます。

于 2014-08-19T19:37:50.567 に答える