我有点纠结于下面的问题。我希望根据以下条件找到具有1的“分组/群集”区域:
从第一个1的位置开始,如果在1之后的窗口中(例如窗口长度==5)没有其他1,则输出的开始和结束位置为1。你知道吗
之后窗口中没有其他1。你知道吗
0 0 0 0 0 1 0 0 0 0 0
开始<;-6
结束<;-6
但是,如果有1,我想滑动窗口的1点,直到没有1在最后的寡妇了。在这种情况下,起点是滑动起点的位置,终点是该区域最后一个1的位置。你知道吗
0 0 0 0 1 0 1 1 1 0 1 0 1 0 0 0 0 0 0
开始<;-6
结束<;-16
我有很多这样的向量,随机分布为1(除了第一个位置总是1)。下面我提供了示例向量和首选输出。我更喜欢用R来解决这个问题(但python也可以)。我非常感谢你的帮助。你知道吗
以下是基于窗口长度==5的示例:
数字向量:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
(1的位置:1 15 62 63 67 86 252 272 334 335 337 344 348 349 350 357 360 361 362 363 365 367 371 373 391 396 406 410 412)
输出:
开始<;-1 15 62 86 252 272 334 344 357 391 406
结束<;-1 15 67 86 252 272 337 350 373 396 412
通过对向量进行游程编码,您可以很容易地做到这一点:
相关问题 更多 >
编程相关推荐