繁体   English   中英

从点向量创建连续线列表

[英]Creating list of continuous lines from a vector of points

抱歉,如果这个问题含糊不清,我进行了搜索,但找不到答案。 我有一些看起来像这样的数据:

x = c(1,2,3,4,5,6,7,8,9,10)

y = c(T,T,T,F,F,T,T,F,F,T)

我想将“ TRUE”点加入为可用于绘图的连续向量列表。 即,这样的列表(带有一些额外的填充):

$`1`
[1] 0.5 3.5

$`2`
[1] 5.5 7.5

$`3`
[1]  9.5 10.5

我知道我可以在for循环中执行此操作,但是我有很多数据点,我想知道是否可以执行一些智能矢量操作。

尝试使用rle

ry <- rle(y)
out <- split(x[y], rep(seq_along(ry$values), ry$lengths)[y])

#$`1`
#[1] 1 2 3
#
#$`3`
#[1] 6 7
#
#$`5`
#[1] 10

lapply(out, function(x) range(x) + c(-0.5,0.5))

#$`1`
#[1] 0.5 3.5
#
#$`3`
#[1] 5.5 7.5
# 
#$`5`
#[1]  9.5 10.5

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM