R 如何以向量列表的形式获取间隔?
我有一个数值向量,我需要得到作为向量列表的间隔 我认为这很容易,但我真的很难找到一个好的,简单的方法 一种糟糕而复杂的方法是粘贴向量及其滞后,然后分割结果 以下是正在工作但丑陋的reprex:R 如何以向量列表的形式获取间隔?,r,R,我有一个数值向量,我需要得到作为向量列表的间隔 我认为这很容易,但我真的很难找到一个好的,简单的方法 一种糟糕而复杂的方法是粘贴向量及其滞后,然后分割结果 以下是正在工作但丑陋的reprex: 库(tidyverse) xx=c(1,5,10,15,20) 粘贴0(滞后(xx),“-”,xx-1)%>%str_split(“-”)#不管第一个如何,它都没有意义 #> [[1]] #>[1]不适用“0” #> #> [[2]] #> [1] "1" "4" #> #> [[3]] #> [1]
库(tidyverse)
xx=c(1,5,10,15,20)
粘贴0(滞后(xx),“-”,xx-1)%>%str_split(“-”)#不管第一个如何,它都没有意义
#> [[1]]
#>[1]不适用“0”
#>
#> [[2]]
#> [1] "1" "4"
#>
#> [[3]]
#> [1] "5" "9"
#>
#> [[4]]
#> [1] "10" "14"
#>
#> [[5]]
#> [1] "15" "19"
由(v0.3.0)于2020-09-06创建
有没有更干净的方法来做同样的事情?您可以使用
Map
:
Map(c, xx[-length(xx)], xx[-1] - 1)
#[[1]]
#[1] 1 4
#[[2]]
#[1] 5 9
#[[3]]
#[1] 10 14
#[[4]]
#[1] 15 19
我们还可以使用
lappy
迭代变量的长度
lapply(seq_along(xx[-1]), function(i) c(xx[i], xx[i+1] - 1))
我们可以从
purrr
library(purrr)
map2(xx[-length(xx)], xx[-1] -1, c)