r - 按位置分割向量

标签 r

如果有一个向量 x

length(x)
# 100

还有一个向量 a ,它表示 x 的子向量的前导索引:
a
# 1, 5, 23, 79

然后我想根据 x 拆分 a 如下:
list(x[1:4], x[5:22], x[23:78], x[79:100])

在 R 中有没有一种快速的方法来做到这一点?

最佳答案

前面的两个答案都依赖于制作与原始 x 向量长度相同的用于拆分的列表/向量。在非常长的向量的情况下,这可能效率低下,可以避免:

Map(function(i,j) x[i:j], a, cumsum(diff(c(a, length(x)+1))))

关于r - 按位置分割向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24347245/

相关文章:

r - tikzDevice 主标题不带粗体

r - 使用ggplot2创建一个facet_wrap图,每个图中都有不同的注释

r - 对 spdep::lagsarlm 模型中的观测值进行加权?

删除重复的组 dplyr r

将 for 循环中的 rbind 替换为 lapply? ( hell 第二圈)

r - 基于共享标识符将两个数据帧的值相乘

r - ggplot 和 geom_sf 在世界地图上不显示刻度线和刻度线

excel - 从 Excel 工作表制作 .RData 文件

R 在没有 Java 的 Windows 上发送电子邮件

r - install.packages 中的警告 : cannot open UR HTTP status was '404 Not Found'