動的な名前の csv ファイルを読み込んだり、ファイル パスのハード コーディングを回避したりする際に問題が発生します。短く整頓されたコード (ハードコードされていない) が必要です。フル パス (「~」より前のすべて) をハードコードすると、ファイルが正常に読み込まれます。ただし、ファイル パスをソフト コーディング (ハード コーディングの反対である場合) すると、エラーが発生します (エラーに正しいパスが表示されているにもかかわらず)。ファイル名の 2 つの可変部分があり、それを読み取る前にファイル名に貼り付けます。貼り付けを避けて、個人ごとにパスを入力するだけでも機能します。
#dynamic part I usually have in a loop with all the options.
part_a <- "outside" #other options here in my loop include "inside"
part_b <- "late" # other option "early" or "preterm"
#reading in the df
df <-read.csv(paste0("~/Data/FromR/clean_",part_a,part_b,"_2016.csv"),
check.names=FALSE, na.strings="null")
Error in file(file, "rt") : cannot open the connection
In addition: Warning message:
In file(file, "rt") :
cannot open file 'C:/Users/myname/Documents/Data/FromR/clean_outsidelate_2016.csv': No such file or directory
ここで提案されているようgetwd()
に、ペーストの最初の部分で代わりに使用すると、ペーストの最初にこの文字列が生成されます。しかし、どうすれば「〜」で動作させることができますか? を使用すると、「ドキュメント」フォルダーで停止します...~
"C:/Users/myname/Documents/MyR_Projects/Specific_R_project/"
~
望ましい結果は、エラーなしでファイルを読み取り、関数を実行して、他のファイルで繰り返すことです。私のループはハードコードで問題なく動作しますが、より一般的またはソフトコード化したかっただけです。