[英]R split vector with jumps
我创建了具有以下结构的矢量:
full_seq <- runif(10^8)
我想生成一个新的向量,提取相同大小的样本。 这对我来说很好:
full_splited <- split(full_seq, ceiling(seq_along(full_seq)/10^3))
现在,我需要从一个固定块跳到另一个固定块。 让我们采用100个数字的序列,10个元素的样本和4个元素的跳跃来说明:
full_seq = 1 2 3 4 5 6 7 8 9 10 .. 100
full_splitted2 [1] = 1 2 3 4 5 6 7 8 9 10
[2] = 14 15 16 17 18 19 20 21 22 23
[3] = 27 28 29 30 31 32 33 34 35 36
[4] = 40 .. 49
[5] = 53 .. 62
[6] = 66 .. 75
[7] = 79 .. 88
full_splited2第八届元素是full_seq的边界之外,并没有成为splited对象的成员。
我不知道这是否是更好的表示形式,但我尝试了一些解决方案,但均未成功。
有什么帮助吗?
非常感谢。
这是你想要的?
full_seq <- 1:100
mysize <- 10
myjump <- 4
myseq <- seq(from=1, to=length(full_seq), by=myjump+mysize-1)
full_splitted2 <- c()
for (i in myseq) {
if ((i+mysize-1) <= length(full_seq)) {
full_splitted2 <- c(full_splitted2, full_seq[i:(i+mysize-1)])
}
}
full_splitted2 <- matrix(full_splitted2, ncol=mysize, byrow=TRUE)
full_splitted2
:
[1,] 1 2 3 4 5 6 7 8 9 10
[2,] 14 15 16 17 18 19 20 21 22 23
[3,] 27 28 29 30 31 32 33 34 35 36
[4,] 40 41 42 43 44 45 46 47 48 49
[5,] 53 54 55 56 57 58 59 60 61 62
[6,] 66 67 68 69 70 71 72 73 74 75
[7,] 79 80 81 82 83 84 85 86 87 88
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.