R分裂向量与跳跃
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的第8个元素在full_seq的边界之外,没有成为拆分对象的成员。
我不知道这是否更好,但我尝试了一些解决方案但没有成功。
有什么帮助吗?
非常感谢。
这是您要找的吗?
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
我创建了具有以下结构的向量:
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的第8个元素在full_seq的边界之外,没有成为拆分对象的成员。
我不知道这是否更好,但我尝试了一些解决方案但没有成功。
有什么帮助吗?
非常感谢。
这是您要找的吗?
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