web-dev-qa-db-ja.com

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

私はこのコードを持っています

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

そして私は次のエラーを受け取ります:

File(file、ifelse(append、 "a"、 "w"))のエラー:接続を開くことができませんさらに:警告メッセージ:In file(file、ifelse(append、 "a"、 "w")):できませんファイル「C:/mypath/myfile.txt」を開きます:そのようなファイルまたはディレクトリはありません

私は このチュートリアル を読みましたが、自分のコードの何が問題であるかを理解できません。何か案が?

edit

@dickoaが指摘したように、ファイルを書き込むには既存のパスが必要なので、次のように簡略化しようとしました。

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

驚くべきことに:Pパス "C:/"は存在します(結果はTRUEです)が、同様のエラーが発生します。

File(file、ifelse(append、 "a"、 "w"))のエラー:接続を開くことができませんさらに:警告メッセージ:In file(file、ifelse(append、 "a"、 "w")):できませんファイル 'C:/mypath/myfile.txt'を開く:権限が拒否されました

11
888

@dickoaがコメントで質問に回答したことは知っていますが、ここで少なくとも1つの回答を提供するために、WindowsでRを使用していくつかの簡単な落とし穴を調べたかったのです。

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

@dickoaの最初の回答に対するすべての謝辞。

がんばって!

18
Maurice Reeves

時々問題はファイルの名前にあります。たとえば、ファイル名に「\」が含まれていると、この問題が発生しました。名前付きの動的リストがあったためです。 sometext = gsub( "/"、 ""、sometext)のようなものを使用して、そのようなものを渡すことができます。

1
Ana Maria

私はこの答えを少し良い説明と共有しました here が、その要点は次のとおりです:

Excelでファイルを開いて、別のユーザーによってロックされていないか確認してください。同じエラーメッセージが表示され、同僚が自分のコンピューターでファイルを開いているため、編集できないようにロックされていることがわかりました。

0
cparmstrong

ここで答えに追加します。

このエラーが発生したのは、保存しようとしたパスが256文字を超えているため、エラーが発生したためです。

パスサイズを小さくすると、問題が解決されました。

0
mastershefi