我确信有一个超级简单的解决方案,我只是无法弄清楚它是什么.
我在R中有一个长的单变量数据集.我可以在整个过程中识别多个相关范围的开始和结束,我只需要过滤掉其余的.
所以给出一个向量x:
> x <- c(2400:2600)
Run Code Online (Sandbox Code Playgroud)
以及起点和终点的向量:
> startpoints <- c(1,11,101)
> endpoints <- c(3,13,103)
Run Code Online (Sandbox Code Playgroud)
我需要返回x的子集,如下所示:
> x[c(1:3, 11:13, 101:103)]
[1] 2400 2401 2402 2410 2411 2412 2500 2501 2502
Run Code Online (Sandbox Code Playgroud)
我试过这个:
> x[startpoints:endpoints]
Run Code Online (Sandbox Code Playgroud)
但是R只取每个向量的第一个值并返回该系列:
[1] 2400 2401 2402
Run Code Online (Sandbox Code Playgroud)
......有几个警告
我的起点和终点矢量的长度应始终相等,尽管它们的长度可能会随着不同的数据集而变化.
r ×1