2

我是 r 的新手,如果作为向量提供,我很难理解 start 和 end 参数是如何工作的。考虑代码:

x <- c(4,6,5,4,6,2,6,7,5,5)
seqselect(x, start=6, end=10)

这将返回一个向量,其中包含位置 6 到 10 的整数。现在:

seqselect(x, start=c(6,1), end=c(10,5))

返回值 6-10 与 1-5 的值连接。为什么呢?start/end 中向量的第二个值有什么作用?示例来自:IRanges 概述第 2 页

4

1 回答 1

1

您误读了示例代码。它实际上说:

seqselect(x, start=c(6,1), end=c(10,5))
# ---------------------^ 1, not 2!

…当然,这正是函数所说的:它连接了几个子范围——在这种情况下,子范围 [6, 10] 和 [1, 5]。

换句话说,seqselect取 N 个起点和终点,对于 i ∈ 1…N 配对的起点和终点中的每一个,它提取范围 [start i , end i ]。

无可否认,这些seqselect论点有点奇怪(我什至会说这个函数设计得很糟糕)。将此请求指定为更合乎逻辑

seqselect(x, (6, 10), (1, 5))

…即明确给出每个范围。

于 2013-09-11T14:47:38.310 回答