【发布时间】:2015-07-03 20:52:17
【问题描述】:
我刚刚开始学习 R,并尝试完成以下任务。
我有一个包含 10 个随机值的向量,其中很少是 NA,也很少是数值,例如
a <- rnorm(100)
b <- rep(NA, 100)
c <- sample(c(a, b), 10)
现在我想创建另一个向量“d”,其中包含“c”中所有 NA 值的索引,例如
d <- c(2, 7, 9)
我试过了
d <- which(c %in% is.na(c))
但它没有给我想要的结果
我为上述目的尝试的这段代码有什么问题
navects <- function(x) {
for(i in 1:length(x)) {
if(is.na(x[i])) c(i)
}
}
【问题讨论】:
-
感谢您的快速响应,它解决了我的目的,如果可能,请您看看那一小段代码,并指出其中的错误。
-
你需要做这样的事情
navects <- function(x) { v1 <- c(); for(i in 1:length(x)) { if(is.na(x[i])) v1[i] <- c(i) }; v1[!is.na(v1)]; },但是如果可以用一行代码解决它,为什么要走这条循环路线。 -
非常感谢你 akrun :-),是的,你是对的,当有单行功能时,不需要循环,但是当我被困在它上面时,我尝试了我想到的任何东西,并且很好奇。