3

「 abcd001.txt、abcd002.txt」という名前のタブ区切りの.txtファイルが多数あります....ディレクトリに保存されています。次のコードを使用してそれらをインポートすることができました(デフォルトのディレクトリはデータファイルディレクトリと同じです)。その3列、すべて数値型データ

filenames <- list.files(path=".",pattern="abcd+.*txt")

#list of data in R
names <-substr(filenames,1,6)


for(i in names){
    filepath <- file.path(".",paste(i,".txt",sep=","))
    assign(i, read.table(filepath,
     colClasses=c("numeric"),
    sep = "\t"))
}

コード自体はエラーを返していません。私の疑問は、ロードされているデータにどのようにアクセスできるかということです。アクセス方法は、3列のデータである必要があるファイルabcd011.txtのデータを言います

コマンド:names [3]は、ファイル番号000002を返すだけですが、データは返しません。

ここでのコードは、ここでのコードと似ています。複数のCSVファイルを別々のデータフレームに読み込みます

4

1 に答える 1

8

read.table結果をリストに入れるか、1 ビットの data.frameに入れることをお勧めします。さらに、applyここでは標準の R ( lapply) またはplyr. 私は を使用することを好むplyrので、私の例ではそのパッケージを使用します。例:

## Read into a list of files:
filenames <- list.files(path=".",pattern="abcd+.*txt")
list_of_data = llply(filenames, read.table, 
                                        colClasses = c("numeric"), sep = "\t")

データへのアクセスは、次を使用して実行できるようになりました。

list_of_data[[1]]
list_of_data[["abcd1.txt"]]

または、ファイルの内容を 1 つの大きなファイルに読み込むことができますdata.frame

big_data = ldply(filenames, read.table, 
                             colClasses = c("numeric"), sep = "\t"))

ファイルのコンテンツへのアクセスは、次を使用して実行できるようになりました。

big_data[big_data$variable == "abcd1.txt",]
于 2012-10-29T12:27:42.413 に答える