【问题标题】:making an integer vector from index of another vector in R从R中另一个向量的索引制作一个整数向量
【发布时间】: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 &lt;- function(x) { v1 &lt;- c(); for(i in 1:length(x)) { if(is.na(x[i])) v1[i] &lt;- c(i) }; v1[!is.na(v1)]; },但是如果可以用一行代码解决它,为什么要走这条循环路线。
  • 非常感谢你 akrun :-),是的,你是对的,当有单行功能时,不需要循环,但是当我被困在它上面时,我尝试了我想到的任何东西,并且很好奇。

标签: r indexing subset


【解决方案1】:

你可以试试which

 which(is.na(c))

注意:c也是一个函数,所以最好不要用c命名对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-28
    • 2015-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-22
    • 1970-01-01
    相关资源
    最近更新 更多