1. ホーム
  2. スクリプト・コラム
  3. その他

[解決済み】ファイルにデータを書き込むときにこのエラーが発生する理由

2022-01-11 09:59:51

質問

コードは次のとおりです。

myvector <- c(3.45235, 1.32525, ... , 2.41351)    # some numbers
write(myvector, "C:/mypath/myfile.txt")           # I use "/" instead of "\"

実行すると、エラーが発生します。

Error in file(file, ifelse(append, "a", "w")) : cannot open the connection In addition: warning message: In file(file, ifelse(append, "a", "w")) : cannot open file 'C:/mypath/myfile.txt' : No such file or directory

編集 :

@dickoa さんのご指摘の通り、ファイルを書き込むには既存のパスが必要なので、以下の方法で簡略化してみました。

file.exists("C:/")
write(myvector, "C:/myfile.txt")

意外と :P パス "C:/" は存在する(結果はTRUE)のですが、同様のエラーが発生します。

Error in file(file, ifelse(append, "a", "w")) : cannot open the connection In addition: warning message: In file(file, ifelse(append, "a", "w")) : cannot open file 'C:/mypath/myfile.txt' : Permission denied

解決方法は?

私は@dickoaがコメントで質問に答えているのを知っていますが、少なくともここで一つの答えを提供するために、私はWindows上のRでいくつかの簡単なゴチャを通過したいと思います。

  1. Windowsを使用している場合、パスにスラッシュを使用する必要があります。Rでは、バックスラッシュは値をエスケープするために予約されています。ですから、Rでのパスは次のようになります。 C:/path/to/my/directory
  2. Windows の新しいバージョンでは、C:㊧はユーザーアカウントによる書き込みから保護されています。Windowsの新しいバージョンでは、C:㊧はユーザーアカウントによる書き込みから保護されています。WindowsのRのアイコンを右クリックし、[管理者として実行]を選択することで、実行できます。Windowsのバージョンによっては、管理者として実行しないと、パッケージをインストールする権利がない場合があります。
  3. R を管理者として実行せず、ファイルに書き込みたい場合は、デフォルトで C:/Users/username/ ディレクトリを作成します。

最初に回答してくれた @dickoa に再び全幅の信頼を置いています。

幸運を祈ります。