【问题标题】:Understanding Indexing in R了解 R 中的索引
【发布时间】:2014-05-12 04:03:17
【问题描述】:

我只是在学习 R,并尝试使用索引来帮助我理解。但是,我尝试了这段代码,并没有得到我期望的结果:

> x 
[1] 3  6  1 NA  2
> x[!is.na(x[x>2])]
[1]  3  6 NA  2

第二个命令的结果不应该是x中那些不是NA而是GT 2的元素吗?换句话说,它应该返回3 6。我对此有什么不明白的地方?

【问题讨论】:

  • x[!is.na(x) & x > 2]

标签: r


【解决方案1】:

这应该做你想做的:

x[!is.na(x) & x > 2]

你的命令

x[!is.na(x[x>2])]

首先返回所有x[x>2],即

3  6 NA
!is.na(c(3,  6, NA)) 
TRUE  TRUE FALSE

所以x[!is.na(x[x>2])]的作用是去掉x的第三个元素。

【讨论】:

    【解决方案2】:

    作为

    > !is.na(x[x>2])
    [1]  TRUE  TRUE FALSE
    

    虽然你的向量的长度是 5 因此它会给

    [1] TRUE TRUE FALSE TRUE TRUE
    

    因此,x[c(1,2,4,5)] 是返回

    我的方法是

    >x <- x[!is.na(s)]
    >x[x>2]
    [1] 3 6
    

    我还在思考一行代码能否完成任务。

    好的@6pool 提供了更好的答案

    x[!is.na(x) & x > 2]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-31
      • 2013-11-23
      • 2016-01-11
      • 1970-01-01
      • 1970-01-01
      • 2016-01-03
      相关资源
      最近更新 更多