area = c(rep(c(26:30),5),rep(c(500:504),rep(c(550:554),rep(c(76:80),5 ))和另一个矢量yIEld = c(1:100).
现在,说我想像这样索引:
> yIEld[area==27][1] 2 7 12 17 22> yIEld[area==501][1] 27 32 37 42 47
没问题,对吧?但是,当我尝试使用c(A,B)对其进行索引时,会发生奇怪的事情. (当我尝试c(最小值:最大值)时甚至更奇怪…)
> yIEld[area==c(27,501)][1] 7 17 32 42
我期待的当然是两个其他例子中出现的实例,而不仅仅是它们的一些奇怪组合.当我可以使用管道OR运算符时,这是有效的:
> yIEld[area==27 | area==501] [1] 2 7 12 17 22 27 32 37 42 47
但是,如果我正在使用范围怎么办?说我希望用c(27:503)范围对其进行索引?在我的实例中,有更多的数据点和范围,所以它更有意义,请不要建议我手工完成,这基本上意味着:
yIEld[area==27 | area==28 |area==29 | ... | area==303 | ... | area==500 |area==501]
肯定有更好的办法…
解决方法 您想在%中使用%.还要注意c(27:503)和27:503产生相同的对象.> yIEld[area %in% 27:503] [1] 2 3 4 5 7 8 9 10 12 13 14 15 17[14] 18 19 20 22 23 24 25 26 27 28 29 31 32[27] 33 34 36 37 38 39 41 42 43 44 46 47 48[40] 49 76 77 78 79 80 81 82 83 84 85 86 87[53] 88 89 90 91 92 93 94 95 96 97 98 99 100总结
以上是内存溢出为你收集整理的在R中:通过布尔比较范围内的值来建立索引向量:index == c(min:max)全部内容,希望文章能够帮你解决在R中:通过布尔比较范围内的值来建立索引向量:index == c(min:max)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)