gpt4 book ai didi

r - ESet的子集/划分ESet

转载 作者:行者123 更新时间:2023-12-01 13:51:41 26 4
gpt4 key购买 nike

是否可以像这样对 ExpressionSet 进行子集化:

SUB=ESet[,ESet@phenoData@data$x==c(0,1)]

在 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

关于r - ESet的子集/划分ESet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5744395/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com