r - 从 R 中的向量元素创建数字序列列表
问题描述
我有一个数字向量如下:
x <- c(1, 10, 11, 15, 16, 21, 22, 26, 27, 31,
32, 36, 37, 41, 42, 46, 47, 51, 52, 56)
我想创建一个在第一个和第二个元素、第三个和第四个元素、第五个和第六个元素等之间运行的数字序列列表。
预期结果如下:
[[1]]
[1] 1 2 3 4 5 6 7 8 9 10
[[2]]
[1] 11 12 13 14 15
[[3]]
[1] 16 17 18 19 20 21
[[4]]
[1] 22 23 24 25 26
[[5]]
[1] 27 28 29 30 31
[[6]]
[1] 32 33 34 35 36
[[7]]
[1] 37 38 39 40 41
[[8]]
[1] 42 43 44 45 46
[[9]]
[1] 47 48 49 50 51
[[10]]
[1] 52 53 54 55 56
我更喜欢基础 R 中的解决方案。
解决方案
将 seq 应用于 的奇数和偶数定位值x
:
Map(seq, x[c(TRUE, FALSE)], x[c(FALSE, TRUE)])
这可以写得更紧凑,如下所示:
Map(seq, x[!0:1], x[!1:0])
推荐阅读
- python - 为什么我的二维数组转换为两个列表对象?
- azure - 使用逻辑应用程序提取附件并在 azure 文件共享中上传
- sql - 多对多关系:如何通过外来行排除一行
- java - 如果阻止 cors 策略 java spring,如何访问后端?
- python - 在 Python 中调整 .nii 文件的大小
- swift - 标签栏视图和底部弹出窗口中的曲线不起作用?
- python - 在 django 中注册的自定义表单不起作用:元标记模型显示没有错误,但不起作用
- solid-principles - 如何防止违反里氏换人
- c++ - 运算符 == C++ 中派生类的重载
- arrays - 如果一个 list1 包含 list2 的一些元素。如果 list2 发生变化, list1 也会发生变化吗?