R中的二进制分组

nev*_*int 3 statistics r

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

x <-c(0.49534,0.80796,0.93970,0.99998)
count      <-c(0,33,0,4)
Run Code Online (Sandbox Code Playgroud)

如何将矢量'x'分组为两个矢量:

  1. grzero包含x中count值大于0的值的向量
  2. 矢量eqzero值为x,count值等于零.

生产

> print(grzero)
> [1] 0.80796 0.99998
> print(eqzero)
> [1] 0.49534 0.93970
Run Code Online (Sandbox Code Playgroud)

Rom*_*aka 17

grzero <- x[count > 0]
eqzero <- x[count == 0]
Run Code Online (Sandbox Code Playgroud)

为什么这个作品是因为这样的表达式count > 0计算结果为布尔值的向量,所以count > 0FALSE TRUE FALSE TRUEcount == 0TRUE FALSE TRUE FALSE.然后x用布尔向量索引向量,只得到布尔向量对应值的元素TRUE.