是否有可能子集這樣的ExpressionSet:子集ESET的/分割ESET
SUB = ESET [,ESET @ phenoData @數據$ X == C(0,1)]
in X是0-9的值,我只是想要當x = 0或x = 1時的條目。
是否有可能子集這樣的ExpressionSet:子集ESET的/分割ESET
SUB = ESET [,ESET @ phenoData @數據$ X == C(0,1)]
in X是0-9的值,我只是想要當x = 0或x = 1時的條目。
嘗試以下操作:
SUB=ESet[, ESet$x %in% c(0,1)]
乍一看,==
和%in%
之間的區別似乎只是微妙。
x <- 0:9
x[x==c(0, 1)]
[1] 0 1
> x[x %in% c(0, 1)]
[1] 0 1
但%in%
不會返回NA
,這可能是有用的,甚至是必不可少的,這取決於你想要做什麼。在下面的例子構造,==
回報NA
,而%in%
返回預期的結果:
x <- c(NA, 0:9)
x[x==c(0, 1)]
[1] NA
x[x %in% c(0, 1)]
[1] 0 1
但不同的是比這深得多。從幫助文件中找到? ==
很明顯,當在不相等長度的向量之間進行二進制比較時,根據需要回收較短向量的元素。
嘗試例如下列:
x <- 0:9
x[x==c(1, 2)]
integer(0)
這導致空載體。如果你回收矢量c(1,2),它很快就會變得明顯,爲什麼:
x: 0 1 2 3 4 5 6 7 8 9
c(1, 2): 1 2 1 2 1 2 1 2 1 2
'==': F F F F F F F F F F
如果你在控制檯中輸入該值,並且你得到了正確的結果,這是可能的。否則它不是。 – 2011-04-21 13:02:00
Aargh,你爲什麼要以這種方式訪問ESet?使用ESet $ x。 – 2011-04-21 13:32:26