假设我有两个相同维度的向量:
x <-c(0.49534,0.80796,0.93970,0.99998)
count <-c(0,33,0,4)
如何将矢量'x'分组为两个矢量:
grzero
值的向量count
eqzero
,其值为x,count
值等于零。屈服
> print(grzero)
> [1] 0.80796 0.99998
> print(eqzero)
> [1] 0.49534 0.93970
答案 0 :(得分:17)
grzero <- x[count > 0]
eqzero <- x[count == 0]
为什么这样做是因为像count > 0
这样的表达式会计算为布尔值的向量,因此count > 0
为FALSE TRUE FALSE TRUE
而count == 0
为TRUE FALSE TRUE FALSE
。然后使用布尔向量索引向量x
,并仅获取布尔向量的对应值为TRUE
的那些元素。
答案 1 :(得分:2)
拆分可能很有用,
split(x,c("eqzero","grzero")[(count>0)+1])
这是一个糟糕的黑客但是......