【问题标题】:Binary Grouping in RR中的二进制分组
【发布时间】:2010-07-06 06:36:21
【问题描述】:

假设我有两个相同维度的向量:

x <-c(0.49534,0.80796,0.93970,0.99998)
count      <-c(0,33,0,4)

如何将向量“x”分成两个向量:

  1. 向量 grzero 包含 x 中的值且 count 值大于 0 并且
  2. 向量 eqzero 的值在 x 中,count 的值等于 0。

产量

> print(grzero)
> [1] 0.80796 0.99998
> print(eqzero)
> [1] 0.49534 0.93970

【问题讨论】:

  • 只是一个简短的评论,我觉得在这种情况下可以删除 linux 和 unix 标签。

标签: r statistics


【解决方案1】:
grzero <- x[count > 0]
eqzero <- x[count == 0]

之所以有效,是因为像 count &gt; 0 这样的表达式计算为布尔向量,所以 count &gt; 0FALSE TRUE FALSE TRUE 并且 count == 0TRUE FALSE TRUE FALSE。然后你用布尔向量索引向量x,并只获取那些布尔向量对应值为TRUE的元素。

【讨论】:

    【解决方案2】:

    拆分可能有用,

    split(x,c("eqzero","grzero")[(count>0)+1])
    

    虽然这是一个糟糕的 hack...

    【讨论】:

      猜你喜欢
      • 2017-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-18
      • 2020-12-14
      • 2014-05-30
      • 1970-01-01
      • 2020-07-17
      相关资源
      最近更新 更多