0

ディレクトリ内の一連の CSV ファイルを検索し、ファイル ID を引数として取得する関数を作成しようとして、2 つの列があるテーブル (実際にはデータ フレーム - R 言語の新機能) を出力します。対応する id パラメータと 2 番目の列は、そのファイル内の行数になります。

ファイルのタイトルはすべて 001.csv ~ 322.csv です。

たとえば、出力は、列タイトル: ID、最初のレコード: 001 (001.csv から派生)、2 番目の列: タイトル「行数」、最初のレコードのようになります。

関数は次のようになります。myfunction(directory,id) ディレクトリは csv ファイルがあるフォルダで、id は数値 (またはベクトル?)、たとえば 1、9、100、または 200:300 のようなベクトルにすることができます。

後者の 200:300 の場合、出力は 100 行のテーブルで、最初の行は 200 行で、その中に 10 行のデータがあります。

ここのところ:

complete <- function(directory,id = 1:332) {

    # create an object to help read the appropriate csv files later int he function
    
     csvfilespath <- sprintf("/Users/gcameron/Desktop/%s/%03d.csv", directory, id)

     colID <- sprintf('%03d', id)

    # now, how do I tell R to create a table with 2 columns titled ID and countrows?
    # Now, how would I take each instance of an ID and add to this table the id and         count of rows in each?
}

これが本当に基本的なように思われる場合は、お詫び申し上げます。私が参加しているチュートリアルは動きが速く、各ビデオ講義を見て、かなりの量の調査も行いました. SO は私のお気に入りのリソースであり、SO を使用することでよりよく学習できます。おそらく、それがパーソナライズされており、私の当面のタスクに直接適用できるからです。私の質問が、R を学んでいる他の人にも役立つことを願っています。

以下のフィードバックに基づく

現在、次のスクリプトがあります。

complete <- function(directory,id = 1:332) {
    csvfiles <- sprintf("/Users/gcameron/Desktop/%s/%03d.csv", directory, id)
    nrows <- sapply( csvfiles, function(f) nrow(read.csv(f)))
    data.frame(ID=id, countrows=sapply(csvfiles,function(x) length(count.fields(x)))
    }

これは正しい軌道に乗っているように見えますか? 「エラー: 予期しない '}' in: "data.frame(ID=id, countrows=sapply(csvfiles,function(x) length(count.fields(x))) }" というエラーが表示されます。

余分な「}」がどこから来ているのかわかりませんか?

4

1 に答える 1

3
data.frame(ID=id, countrows=sapply(csvfilepath, function(x) length(count.fields(x))))
于 2013-01-16T14:47:40.570 に答える