N という名前のこの疎行列があります。
4 x 4 sparse Matrix of class "dgCMatrix"
C1 C2 C3 C4
V1 . 3 5 2
V2 . 5 1 .
V3 . . . .
V4 . . 4 .
欠損値が 2 つ以上ある行を削除しようとしています。私はこれで終わると思います:
C1 C2 C3 C4
V1 . 3 5 2
私はこのコードを書きました:
#iterate on rows and count:
#how many values in row ri are bigger than 0
# if count is not bigger than limit, remove row ri
limit = 3
for(ri in 1:nrow(N)){
count <- length(which(N[ri,]>0))
if (count <limit){
tmp <- paste("V",ri,sep="")
rmv <- paste (rmv, tmp, sep= " ")
}
}
#now remove specific row names
N <- N[!rownames(N) %in% rmv, ]
問題は、最初のループで rmv が指定されておらず、エラーが発生するため、これが機能しないことです。
"object 'rmv' not found"
rmv を初期化するにはどうすればよいですか? 私が使用する場合:
rmv <- ""
次に、空のスペースで始まる文字列を取得します。次に例を示します。
> rmv
[1] " V2"
そして、私の最後の行は機能しません:
N <- N[!rownames(N) %in% rmv, ]
また、これは私がRで書いた最初のコードなので、基本的な概念に欠けている大きなものがあれば、ぜひ読んでみたいです(これには6時間かかり、stackoverflowで多くのことを読みましたさまざまな R チュートリアルがありますが、ここまで到達したことを誇りに思っています。これが私の最初の質問です)。
ありがとう!