1

わかりました-これが私がやろうとしていることです。

このパスワードで保護された CSV ファイルを R にインポートしようとしています。

次を使用して問題なくインポートできます。

read.csv()

RStudio でコードを実行すると、すべてが完璧に機能します。

ただし、バッチ ファイル (windows .bat) を使用して .R ファイルを実行しようとすると、機能しません。.BAT ファイルを使用して、毎朝コードを実行するようにスケジュールされたタスクを設定できるようにしたいと考えています。

これが私の.BATファイルです:

"E:\R-3.0.2\bin\x64\R.exe" CMD BATCH "E:\Control Files\download_data.R" "E:\Control Files\DailyEmail.txt"

そして、ここに私の.Rファイルがあります:

url <- " http://ユーザー名:パスワード@www.url.csv "

データ <- read.csv(url, skip=1)

**注、ユーザー名/パスワードとCSVの正確な場所をコードに入れました。ここでは一般的なものを使用しました。これは仕事に関連しており、ユーザー名とパスワードを投稿することはおそらく嫌われているからです。

すでに述べたように、このコードは RStudio で使用すると問題なく動作します。しかし、.BAT ファイルを使用すると失敗します。

次のエラー メッセージが表示されます。

download.file(url, "E:/data/data.csv") のエラー: URL ' websiteurl ' を開けません さらに: 警告メッセージ: Download.file(url, "E:/data/data.csv") 内: 'username' を解決できません 実行が停止しました

** 上記のウェブサイトの URL は上記の http です (リンクを投稿できません) 明らかに、.BAT はユーザー名/パスワードに問題がありますか? 何かご意見は?

* 編集 *

Linuxでこれを試すところまで行きました。おそらくWindowsが愚かなバガーを演じていたのではないかと考えています。

端末から Rscript -e "download_data.r" を実行すると、Windows で行ったのとまったく同じエラー メッセージが表示されます。それで、これはデータを取得している場所に問題があるのではないかと思いますか? プロバイダーはコマンド ラインからのデータをブロックしている可能性がありますが、Rstudio からのデータはブロックしていませんか?

4

2 に答える 2

0

そのため、ほとんどの人にとって最も実用的ではない可能性が高い解決策を見つけましたが、私にとってはうまくいきます。

私がしたことは、プロジェクトを Linux システムに移行することでした。とにかく、毎日のスクリプトの実行は、Linux の方が簡単です。

このソリューションは、Linux の「wget」機能を利用します。

シェル スクリプトで wget を実行するか、R で system() 関数を使用して wget を実行することができます。

コードは次のようになります。

wget -O /home/user/.../file.csv --user=userid --password='password' http://www.url.com/file.csv

そして、次のようなことができます:

syscomand >- "wget -O /home/.../file.csv --user=userid --password='password' http://www.url.com/file.csv "

システム (syscommand)

R で CSV をハード ドライブ上の場所にダウンロードし、read.csv() を使用して CSV を取得します。

このようにすることで、問題の潜在的な根本原因についての洞察が得られました。システム (syscommand) の実行中に、次の出力が得られます。

www.website.com (www.website.com)|ip.ad.re.ss|:80... に接続しています... 接続しました。

HTTP 要求が送信され、応答を待っています... 401 Unauthorized

www.weburl.com:80 への既存の接続を再利用します。

HTTP 要求が送信され、応答を待っています... 200 OK

リクエストを 2 回送信する必要がある理由がわかりませんか? なぜ最初の試行で 401 Unauthorized になるのですか?

于 2013-11-07T21:18:36.853 に答える
0

ファイルのアクセス許可に関係する同様の問題がありました。.bat ファイルには、Rstudio から直接コードを実行する場合と同じ権限がありません。次のような.batファイル内でrscript(http://stat.ethz.ch/R-manual/R-devel/library/utils/html/Rscript.html )を使用してみてください

Rscript "E:\Control Files\download_data.R"

引数「E:\Control Files\DailyEmail.txt」の目的は何ですか? プログラムはそれを何らかの方法で使用することになっていますか?

于 2013-11-04T19:54:23.857 に答える