2010-07-06 19 views
3

假設我有兩個尺寸相同的載體:二進制分組中的R

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值等於零。

屈服

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

只是一個快速的評論,我覺得像Linux和UNIX標籤可以在這種情況下被丟棄。 – 2010-07-06 09:32:57

回答

17
grzero <- x[count > 0] 
eqzero <- x[count == 0] 

爲什麼這個作品是因爲喜歡count > 0表達式求布爾值的矢量,所以count > 0FALSE TRUE FALSE TRUEcount == 0TRUE FALSE TRUE FALSE。然後,您使用布爾向量爲矢量x編制索引,並僅獲取布爾向量的相應值爲TRUE的那些元素。

2

分裂可能是有用的,

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

這是一個糟糕的黑客,但...