1

各ファイルのファイル名を新しい変数としてデータ セットに組み込みながら、R を使用してカンマ区切りのテキスト ファイルでいっぱいのディレクトリをマージしようとしています。

私は以下を使用しています:

library(plyr)
file_list <- list.files()
dataset <- ldply(file_list, read.table, header=FALSE, sep=",")

データセット内の新しい変数として読み取られた各ファイルのファイル名を追加する方法について、誰かが光を当てることができますか?

どうもありがとう、

-ジョン

4

1 に答える 1

2

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 
于 2013-06-28T16:43:36.173 に答える