我有这个我命名为 N 的稀疏矩阵:
4 x 4 sparse Matrix of class "dgCMatrix"
C1 C2 C3 C4
V1 . 3 5 2
V2 . 5 1 .
V3 . . . .
V4 . . 4 .
我正在尝试删除具有两个或多个缺失值的行。我希望最终得到这个:
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 教程,但我为自己能走到这一步感到非常自豪,这是我的第一个问题)。
谢谢!