read.table()
ファイル名変数に追加する関数のラッパーを作成するだけです。このようなものが動作するはずです:
read.data <- function(file){
dat <- read.table(file,header=F,sep=",")
dat$fname <- file
return(dat)
}
そこに到達したら、その関数をデータ ファイル全体に適用するだけです。サンプルデータを投稿していないので、実際にどのように見えるかはわかりませんが、今のところ、可能な限りクリーンであり、rbind()
それらを結合するのに十分であると仮定します。その場合、この例はその機能を説明する必要があります実際に:
> data(iris)
> write.csv(iris,file="iris1.csv",row.names=F)
> write.csv(iris,file="iris2.csv",row.names=F)
> dataset <- do.call(rbind, lapply(list.files(pattern="csv$"),read.data))
> head(dataset)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species fname
1 5.1 3.5 1.4 0.2 setosa iris1.csv
2 4.9 3.0 1.4 0.2 setosa iris1.csv
3 4.7 3.2 1.3 0.2 setosa iris1.csv
4 4.6 3.1 1.5 0.2 setosa iris1.csv
5 5.0 3.6 1.4 0.2 setosa iris1.csv
6 5.4 3.9 1.7 0.4 setosa iris1.csv
> table(dataset$fname)
iris1.csv iris2.csv
150 150