0

動的な名前の 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/"~

望ましい結果は、エラーなしでファイルを読み取り、関数を実行して、他のファイルで繰り返すことです。私のループはハードコードで問題なく動作しますが、より一般的またはソフトコード化したかっただけです。

4

1 に答える 1