複数の.csvファイルをデスクトップのフォルダから読み込み、これらの.csvファイルをすべて1つのdata.frameにマージし、各ファイルの名前を含む列を作成します。複数の.csvファイルを読み込み、マージして新しい列を作成するにはどうすればよいですか?
私が試してみました:
my.path <- "C:/Users/JB/Desktop/RawFiles/"
filenames <- paste(my.path, list.files(path=my.path), sep="/")
my.df <- do.call(rbind, lapply(filenames, function(x) cbind(read.csv(x), name=strsplit(x,'\\.')[[1]][1])))
しかし、my.dt$name
は.CSVのファイル名が含まれていません。むしろ、ファイルの場所を含んでいます。例えば、head(my.dt, 3)
が生成する:
name
1 C:/Users/JB/Desktop/RawFiles//Analysis_01122016
2 C:/Users/JB/Desktop/RawFiles//Analysis_01122016
3 C:/Users/JB/Desktop/RawFiles//Analysis_01122016
にはどうすればmy.dt$name
だけfile.nameを生産するので、これを編集することができますか?私の予想される出力は:
name
1 Analysis_01122016
2 Analysis_01122016
3 Analysis_01122016
ありがとう!
'strplitは' .'で分割され、最初の部分をとっています。だからこそ、拡張子を削除することです(ファイル名にピリオドがある場合はそれ以上)。 – lebelinoz
また、あなたの 'sep ="/"'は余分なスラッシュを追加しているようです。 – lebelinoz