2

コマンドを使おうとしていますが、コーディングを実行する部分がread.csv()わかりません。colClasses誰かがそれが何であるかを説明し、また私に簡単なコーディングの例を教えてくれread.csv()ますか?

また、のコーディングを実行するとread.csv()、エラーが発生します

> object of type 'closure' is not subsettable

これはどのような種類のエラーですか?前回コードを実行したときは機能しましたが、今はこれを取得しています。ここでどのような変更を加える必要があるのか​​わかりません。これは私のコードです:

Precipfiles[1:24] <- list.files(pattern=".csv")
> DF <- NULL
> for (f in Precipfiles[1:24]) {
    data[1:24]<-read.csv(f,header=T,sep="\t",na.string="",colClasses="character")
    DF[1:24]<-rbind(DF,data[1:24])
}

基本的にはすべてのデータを読み込んでまとめていますが、merge()上記のトラブルでコマンドが使えません。

colClasses="character"私が使用しているデータはすべて200x200の行列の数値であるため、使用すべきではないと思います。私がそれらをまとめなければならない24のデータファイルがあります。

このコーディングを改善するための提案やアドバイスがあれば、私に知らせてください。よろしくお願いします。

4

1 に答える 1

5

[1:24]すべての割り当てで本当に必要なわけではありません。これが問題の原因です。いくつかの説明のインデックス付きベクトルのサブセットに割り当てられています。

に割り当てようとしているときのエラーメッセージはdata[1:24]data以前に割り当てられていませんでした (以前の使用法 (あなたが言及した) では、dataおそらくlistまたはdata.frameあなたが作成したものでした)。それ自体dataが関数であり (パッケージに関連付けられたデータの読み込みについては、「 」を参照?data)、表示されたエラーは (関数にはクロージャーが含まれている) というものです。

私は次のようなものを提案します

Precipfiles <- list.files(pattern=".csv")
DFlist <- lapply(Precipfiles, read.table, sep = '\t', 
                  na.string = '', header = TRUE)
bigDF <- do.call(rbind, DFlist)

# or, much faster using data.table 
library(data.table)
bigDF <- rbindlist(DFlist)
于 2013-02-24T22:14:01.410 に答える