R には、指定した 1 つのディレクトリから多くの CSV に対して lapply() を介して summary() を実行する単純な関数があります。関数を以下に示します。
# id -- the file name (i.e. 001.csv) so ID == 001.
# directory -- location of the CSV files (not my working directory)
# summarize -- boolean val if summary of the CSV to be output to console.
getMonitor <- function(id, dir, summarize = FALSE)
{
fl <- list.files(dir, pattern = "*.csv", full.names = FALSE)
fdl <- lapply(fl, read.csv)
dataSummary <- lapply(fdl, summary)
if(summarize == TRUE)
{ dataSummary[[id]] }
}
ディレクトリを指定して、それをパラメーターとして関数に渡そうとすると、次のようになります。
dir <- "C:\\Users\\ST\\My Documents\\R\\specdata"
funcVar <- getMonitor("001", dir, FALSE)
次のエラーが表示されます。
ファイルのエラー (file, "rt") : 接続を開くことができません。さらに: 警告メッセージ: In file(file, "rt"): cannot open file '001.csv': No such file or directory
それでも、以下のコードを単独で実行すると:
fl <- list.files("C:\\Users\\ST\\My Documents\\R\\specdata",
pattern = "*.csv",
full.names = FALSE)
fl[1]
私が指しているディレクトリを見つけ、fl[1]はリストされた最初のファイルである[1] "001.csv"を正しく出力します。
私の質問は、このパス変数をパラメーターとして関数に渡そうとするときに何が間違っているのかということです。R はこのようにパラメーターを処理できませんか? 私が完全に欠けているものはありますか?私は周りを検索してみましたが、他のプログラミング言語に精通しているので、率直に言って、今これに行き詰まっているのはちょっとばかげている/敗北していると感じています.