34

Rを使用して、すべて.txt形式のデータを視覚化しています。ディレクトリには数百のファイルがあり、すべてを1つのテーブルに一度にロードしたいと思います。

何か助けはありますか?

編集:

ファイルの一覧表示は問題ありません。しかし、リストからコンテンツに移動するのに問題があります。ここからいくつかのコードを試しましたが、この部分にバグがあります。

all.the.data <- lapply( all.the.files,  txt  , header=TRUE)

言って

 Error in match.fun(FUN) : object 'txt' not found

この問題を明確にするコードスニペットをいただければ幸いです。

4

5 に答える 5

38

これを試すことができます:

filelist = list.files(pattern = ".*.txt")

#assuming tab separated values with a header    
datalist = lapply(filelist, function(x)read.table(x, header=T)) 

#assuming the same header/columns for all files
datafr = do.call("rbind", datalist) 
于 2010-08-03T16:24:13.973 に答える
5

dir()関数akaのヘルプを参照してくださいlist.files()。これにより、おそらく正規表現でフィルタリングされた、ループ可能なファイルのリストを取得できます。

それらを一度にまとめたい場合は、最初に 1 つのファイルにコンテンツを含める必要があります。1 つのオプションは、 を使用catしてすべてのファイルを入力しstdout、それを読み取るために使用することpopen()です。詳細については、を参照help(Connections)してください。

于 2010-08-03T15:14:39.617 に答える
4

すべての答えをありがとう!

その間、私も自分でメソッドをハッキングしました。それが何か役に立つかどうか教えてください:

library(foreign)

setwd("/path/to/directory")

files <-list.files()

data <- 0


for (f in files) {

tempData = scan( f, what="character")

data <- c(data,tempData)    

} 
于 2010-08-03T19:53:23.060 に答える