按索引障碍划分的序列

问题描述 投票:0回答:1

给定一个序列s <- 10:1base R中是否有任何精美的功能可让您设置s的索引的屏障以划分s

例如,如果barriers <- c(3,7)表示分隔发生在s的第3位和第7位,那么所需的输出应该是分区列表,例如

> list(10:8,7:4,3:1)
[[1]]
[1] 10  9  8

[[2]]
[1] 7 6 5 4

[[3]]
[1] 3 2 1

注意,如果barriers <- c(3,10),由于在第10位之后的屏障之外的分区没有任何剩余,因此所需的输出应为

> list(10:8,7:1)
[[1]]
[1] 10  9  8

[[2]]
[1] 7 6 5 4 3 2 1
r arrays partition
1个回答
0
投票

您可以使用splitfindInterval,但需要采用障碍来获得所需的输出:

s <- 10:1
barriers <- c(3.5,7.5)
split(s, findInterval(s, barriers))
#$`0`
#[1] 3 2 1
#
#$`1`
#[1] 7 6 5 4
#
#$`2`
#[1] 10  9  8
© www.soinside.com 2019 - 2024. All rights reserved.