是否有可能子集这样的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