web-dev-qa-db-ja.com

ファイル(ファイル、「rt」)のエラー:接続を開けません

私はRを初めて使用しますが、このエラーを詳細に調査した後でも、その解決策を見つけることができません。これがコードです。作業ディレクトリを確認し、ファイルが正しいディレクトリにあることを確認しました。感謝します。ありがとう

pollutantmean <- function(directory, pollutant = "nitrate", id= 1:332)            
{                 if(grep("specdata",directory) ==1) 
            {
                    directory <- ("./specdata")
            }
            mean_polldata <- c()
            specdatafiles <- as.character(list.files(directory))
            specdatapaths <- paste(directory, specdatafiles, sep="")
                            for(i in id) 
                    {
                    curr_file <- read.csv(specdatapaths[i], header=T, sep=",")
                    head(curr_file)
                    pollutant
                    remove_na <- curr_file[!is.na(curr_file[, pollutant]), pollutant]
                    mean_polldata <- c(mean_polldata, remove_na)
                    }
            {
                    mean_results <- mean(mean_polldata)
                    return(round(mean_results, 3))
            }
} 

私が得ているエラーは次のとおりです:

Error in file(file, "rt") : cannot open the connection

file(file, "rt")

read.table(file = file, header = header, sep = sep, quote = quote, 
    dec = dec, fill = fill, comment.char = comment.char, ...)

read.csv(specdatapaths[i], header = T, sep = ",")

pollutantmean3("specdata", "sulfate", 1:10)

In addition: Warning message:
In file(file, "rt") :
  cannot open file './specdata001.csv': No such file or directory
33
ldeassis

directory <- ("./specdata")directory <- ("./specdata/")に変更する必要があります

現在の作業ディレクトリに対して、specdataディレクトリにあるファイル001.csvを探しています。

この質問は、ここで作業ディレクトリの構造を提供していないため、コンテキストなしで答えることはほぼ不可能です。幸いなことに、私は既にCourseraでRプログラミングを受講しているので、この宿題の質問をすでにしました。

16
capt-calculator

作業ディレクトリを1レベル/フォルダ高く設定します。たとえば、既に次のように設定されている場合:

setwd("C:/Users/Z/Desktop/Files/RStudio/Coursera/specdata")

1レベル前に戻り、次のように設定します。

setwd("C:/Users/Z/Desktop/Files/RStudio/Coursera")

つまり、作業ディレクトリとして「specdata」フォルダを作成しないでください。

9
Abi

私は自分のコードの何が間違っているのかを理解しようと多くの時間を費やしました...

また、ウィンドウを使用している場合は簡単に思えます。

ファイルに「blabla.txt」という名前を付けると、ウィンドウに「blabla.txt.txt」という名前が付けられます。これは.CSVファイルでも同じなので、「001.csv.csv」という名前のファイルを作成すると、「001 .csv」

したがって、.csvファイルを作成するときは、名前を「001」に変更し、read.table("/absolute/path/of/directory/with/required/001.csv")を使用してRで開きます。

わたしにはできる。

7
IceCriime

このエラーが表示されるのは、RStudioが作業ディレクトリのパスを失ったためです。

(1)セッションに移動...

(2)作業ディレクトリを設定...

(3)ディレクトリを選択...

->その後、ウィンドウがポップアップ表示されます。

->データを保存するフォルダーを選択します。

これは、作業ディレクトリを変更するコードなしの方法です。これがあなたのお役に立てば幸いです。

enter image description here

3
BetterTeng

ファイルへのアクセス中にこのようなエラーが発生した場合に実行できるより良いチェックの1つは、file.exists("file_path/file_name")関数を使用することです。この関数は、ファイルが既存でアクセス可能な場合はTRUEを返し、そうでない場合はFalseを返します。

1
akzhere

rスタジオを閉じて、管理者として再度実行します。それは私にとって魔法でした。それがあなたとこれを通過する誰にとってもうまくいくことを願っています。

1
Joshua Jumbo

setwd()を使用して、適切なディレクトリに変更します。ファイル名のみを使用して、作業ディレクトリ内のファイルにアクセスします。 "../<filename>"を使用して上記のフォルダーに移動します。

1
Rishiraj Surti

Windowsで実行している場合は、Windows OSファイルシステムの制約を回避するために、管理者としてRまたはR Studioを実行してみてください。

1
Frank Tiernan

同じ問題が発生しました。ファイル名から拡張子を削除しました。例:ファイル名はxyzとして保存されました。 csv。 xyzとして保存しました。

0
niti sethi

友人からRコードファイルを取得し、read.csvコマンドを実行できませんでしたが、同じコマンド(read.csv)を新しいRスクリプトファイルにコピーすると、問題なく実行されました。

私の友人が共有するRコードファイルで以下のコマンドが実行されていなかったため、新しいRスクリプトファイルを作成してコマンドの下で実行した場合、作業ディレクトリ、ファイル名などはすべて正しいものでした。

           df <- read.csv("file.csv",header=TRUE,stringsAsFactors = FALSE,strip.white = 
           TRUE,sep = ',')

issue/resolution:Rコードファイルを右クリックしてファイルのブロックを解除し、[保存]ボタンをクリックすると、問題が解決しました。 RコードファイルがWindowsのダウンロードフォルダーにある場合、他のフォルダーに移動します。

enter image description here

0
Tokci

これと同じエラーメッセージが表示され、できる限り簡単な方法で修正しました。 .csvファイルをデスクトップのファイルフォルダーに入れ、RStudioのコンソールの横にあるウィンドウでデスクトップを開き、そこでファイルを開き、.csvファイルの横にあるボックスにチェックマークを付けてから、「more」を使用しましたこのウィンドウの上部にあるメニューをプルダウンして、これを作業ディレクトリとして設定します...おそらく、私のようなスーパー初心者にとって最も簡単な方法です:)

0

このエラーが発生し、WindowsマシンのRStudioが\をエスケープシンボルとして使用しようとしているため、それに対処するために\\に置き換える必要がありました。

パスでfile.exists関数を試してください。例:

file.exists("D:\\R\\path_to_file.csv")
0

このエラーは、パスでgetwd()の結果を直接使用しようとした場合にも発生します。問題は、最後の「/」の欠落です。次のコードを試してください:

projectFolder <- paste(getwd(), "/", sep = '')

Paste()は、最後にスラッシュを連結します。

0
Guannan Shen