0

私が理解するのに苦労しているRチュートリアルを通して作業しています。

ディレクトリは、多数のcsvファイルを含むフォルダです。この関数は、IDとして、1つ以上のファイルのいずれかを受け取り、それぞれのレコードの数を返します。

私の機能:

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

   csvfiles <- sprintf("/Users/myname/Desktop/%s/%03d.csv", directory, id)

   nrows <- sapply( csvfiles, function(f) nrow(read.csv(f)))
   data.frame(ID=sprintf('%03d', id), 
              countrows=sapply(csvfiles,function(x) length(count.fields(x))),
             row.names=id
           )
       }

次にcomplete( "specdata"、100:105)戻り値

    ID countrows
100 100      1097
101 101       731
102 102      1462
103 103      3653
104 104      2558
105 105      2192

左端の列が1から始まるシーケンスになるようにするにはどうすればよいですか?たとえば、最初のレコードは1 100&1092、2番目のレコードは2 101&731になります。

4

2 に答える 2

5

最初の明らかな列は、行の名前だけです (例を見てくださいncol(specdata))。行の名前は次のように変更できます。

row.names(specdata) <- 1:nrow(specdata)
于 2013-01-16T21:26:23.897 に答える
2

関数内では、データフレーム呼び出し内でこれを使用します。

row.names = 1: length(id)
于 2013-01-17T01:19:15.113 に答える