我在R中列出了以下 list :

start <- c(1, 5, 11)
end <- c(2, 9, 13)

如何以这种方式连接它们以生成非连续范围的列表:

c(1:2, 5:9, 11:13)

推荐答案

试一试Map

> Map(`:`, start, end)
[[1]]
[1] 1 2

[[2]]
[1] 5 6 7 8 9

[[3]]
[1] 11 12 13

或再加上unlist

> unlist(Map(`:`, start, end))
 [1]  1  2  5  6  7  8  9 11 12 13

一种更有效的方法可能是使用sequence

> sequence(end - start + 1, start)
 [1]  1  2  5  6  7  8  9 11 12 13

R相关问答推荐

如何在列表的子元素上使用setName

过滤Expand.Grid的结果

如何使用Cicerone指南了解R Shiny中传单 map 的元素?

矩阵%*%矩阵中的错误:需要数字/复杂矩阵/向量参数

如何根据R中其他列的值有条件地从列中提取数据?

使用sf或terra的LINESTRAING的累积长度

在R中无法读入具有Readxl和lApply的数据集

我如何才能找到FAMILY=POISSON(LINK=&Q;LOG&Q;)中的模型预测指定值的日期?

在ggplot2中更改小提琴情节的顺序

从外部文件读取多个值作为字符向量

如何使用tryCatch执行语句并忽略警告?

根据列A中的差异变异列,其中行由列B中的相对值标识

在使用bslb和bootstrap5时,有没有办法更改特定dt行的 colored颜色 ?

如何用书面利率绘制geom_bar图

如何基于两个条件从一列中提取行

在数据帧列表上绘制GGPUP

为R中的16组参数生成10000个样本的有效方法是什么?

随机将数据帧中特定列上的某些行设置为NA

为什么不能使用lApply在包装函数中调用子集

根据排名的顶点属性调整曲线图布局(&Q)