ESet 的子集 /除以 ESet

发布于 2024-11-02 20:22:13 字数 152 浏览 1 评论 0原文

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

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

是 0-9 的值,我只想要 x=0 或 x=1 时的条目。

Is it possible to subset a ExpressionSet like this:

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

in X are values from 0-9, and I just want the entries when x=0 or x=1.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

灼疼热情 2024-11-09 20:22:13

请尝试以下操作:

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

Try the following:

SUB=ESet[, ESet$x %in% c(0,1)]

At first glance, the difference between == and %in% seems only subtle.

x <- 0:9

x[x==c(0, 1)]
[1] 0 1

> x[x %in% c(0, 1)]
[1] 0 1

But %in% will never return NA, and this could be useful, or even essential, depending on what you want to do. In the following constructed example, == returns NA, whilst %in% returns the expected result:

x <- c(NA, 0:9)

x[x==c(0, 1)]
[1] NA

x[x %in% c(0, 1)]
[1] 0 1

But the difference is much deeper than this. From the help files for ?== it is apparent that when making binary comparisons between vectors of unequal length, the elements of shorter vectors are recycled as necessary.

Try for example the following:

x <- 0:9
x[x==c(1, 2)]
integer(0)

This results in an empty vector. If you recycle the vector c(1, 2), it quickly becomes apparent why:

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文