4

重複の可能性:
R-data.frame内のNAを含む行を削除します

次の関数から派生したデータフレームがあります。

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)))

        rowlabels <- nrow(nrows)

        data.frame(id=sprintf('%3d', id), 
            nobs=sapply(csvfiles,function(x) length(count.fields(x))),
            row.names=rowlabels
           )
       }

この関数は、オブジェクトcsvfilesによって生成されたディレクトリ内に含まれる各ファイルの行数をカウントします。次に、ファイル番号と行数(つまり、2列)を示すデータフレームを出力します。

私はそれを持っていたと思いましたが、問題は、インスタンスがNA存在する各ファイル内の行を除外する必要があることです。

これを編集して、各ファイルの行を無視し、が存在しない行をカウントするにはどうすればよいNAですか?

4

1 に答える 1

5

この行を置き換えます:

nrows <- sapply( csvfiles, function(f) nrow(read.csv(f)))

この行では、次のcomplete.cases関数を使用します。

nrows <- sapply( csvfiles, function(f) nrow(complete.cases(read.csv(f))))

complete.casesNAデータフレームを取得し、同じ列であるが、少なくとも1つがスローされたすべての行を含むデータフレームを返します。

于 2013-01-16T23:26:25.817 に答える