Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何以向量列表的形式获取间隔?_R - Fatal编程技术网

R 如何以向量列表的形式获取间隔?

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]

我有一个数值向量,我需要得到作为向量列表的间隔

我认为这很容易,但我真的很难找到一个好的,简单的方法

一种糟糕而复杂的方法是粘贴向量及其滞后,然后分割结果

以下是正在工作但丑陋的reprex:

库(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)