ディレクトリ内の一連の 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))) }" というエラーが表示されます。
余分な「}」がどこから来ているのかわかりませんか?