r - 如何获取向量列表形式的间隔?

标签 r

我有一个数值向量,我需要获取向量列表形式的间隔。

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

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

这是有效但丑陋的表示:

library(tidyverse)
xx = c(1, 5, 10 ,15 ,20)
paste0(lag(xx), "-", xx-1) %>% str_split("-") #nevermind the first one, it cannot really make sense anyway
#> [[1]]
#> [1] "NA" "0" 
#> 
#> [[2]]
#> [1] "1" "4"
#> 
#> [[3]]
#> [1] "5" "9"
#> 
#> [[4]]
#> [1] "10" "14"
#> 
#> [[5]]
#> [1] "15" "19"

reprex package于2020年9月6日创建(v0.3.0)

有没有更简洁的方法来做同样的事情?

最佳答案

您可以使用 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

我们还可以使用 lapply 迭代变量的长度。

lapply(seq_along(xx[-1]), function(i) c(xx[i], xx[i+1] - 1))

关于r - 如何获取向量列表形式的间隔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63765773/

相关文章:

r - 将字符串分成3列 : text, 数字、文本

r - 将变量名传递给函数并在 R 中的循环内输出

r - 如何将数字 ID 作为字符串导入,而不是四舍五入

r - 如何将数据帧行转换为 R 中的变量

r - 如何在 Windows 上找出哪个 .c 文件包含 R 内部的 .c 函数?

r - 在 R rvest 中对 url 和 html 节点进行网络抓取循环

r - R : How to set fpc argument (finite population correction) 中的调查包

r - 使用 `.SD` 时,j 参数中 `get()` 的列顺序不同

r - 在数据框中将 2 列合并为一列

r - 如何在R中使用stemDocument?