r - 从 r 中的向量生成列表
问题描述
我有一个像a
. 我想从中生成一个b
列表a
。我只输入了列表的前 4 个组件。任何实现这一目标的快速方法的建议都值得赞赏:
a <- seq(from =0, to = 359, by = 8)
b <- list(c(0:7), c(8:(8+7)), c(16:(16+7)), c(24:(24+7)))
> b
[[1]]
[1] 0 1 2 3 4 5 6 7
[[2]]
[1] 8 9 10 11 12 13 14 15
[[3]]
[1] 16 17 18 19 20 21 22 23
[[4]]
[1] 24 25 26 27 28 29 30 31
解决方案
您可以从to的min
值创建一个序列,然后使用or根据间隔拆分序列。a
max
findInterval
cut
tmp <- seq(min(a), max(a))
split(tmp, findInterval(tmp, a))
#$`1`
#[1] 0 1 2 3 4 5 6 7
#$`2`
#[1] 8 9 10 11 12 13 14 15
#$`3`
#[1] 16 17 18 19 20 21 22 23
#$`4`
#[1] 24 25 26 27 28 29 30 31
#$`5`
#[1] 32 33 34 35 36 37 38 39
#...
另一种使用方式Map
:
Map(seq, a[-length(a)], a[-1] - 1)
推荐阅读
- mysql - 如何在 Mysql+Node JS 的另一个查询中使用一个查询的结果数组?
- git - 如何在 git 中比较不同分支中的相同文件(使用 visualstudio 或 Tortoise git,或使用 Git UI)
- java - Object的Oracle PLSQL表有一个参数在Oracle 11g中填写,但在Oracle 12c中没有填写
- html - Bootstrap 3将行中的元素拉伸到相同大小
- ruby-on-rails - ActionMailer::Base:Class 的未定义方法 (NoMethodError)
- java - 如何检查 AWS SQS 连接空闲时间
- javascript - 如何在管道地图中处理承诺
- c++ - 如果用户重复订购,价格不会累积
- c++ - C++/Djinni 错误字段类型是一个抽象类
- ssl - 使用用户名和密码连接到 Amazon ActiveMQ