以多个数分割向量

时间:2018-11-14 20:53:59

标签: r

我想将向量分割成多个整数,所以给向量 c(1:100)我想接收像这样的向量:

c(1,11,21,31,41,51,61,71,81,91) 
c(2,12,22,32,42,52,62,72,82,92) 
..... 
c(10,20,30,40,50,60,70,80,90,100)

请注意,我希望向量c(1,11,21,31,41,51,61,71,81,91)在新向量列表中是第一个,因为我知道split(1: 100,1:100 %% 10)[1]是c(10,20,30,40,50,60,70,80,90,100)这不是我想要的

编辑 1:100的例子只是一个例子。在我的应用中,我想分割一个256个数字的向量(随机数不是从1到256),然后将其划分为16个新向量...

3 个答案:

答案 0 :(得分:2)

您想要的声音split(1:100,1:100 %% 10)。一些订购选项包括:

x <- split(1:100,1:100 %% 10)
c(tail(x,-1),head(x,1))

或上面的评论

split(1:100,((1:100 %% 10) -1) %% 10)

答案 1 :(得分:1)

就像在评论中一样,完美的选择是使它像这样:

split(1:100,0:99 %% 10) 

在这种情况下,我们可以使其真正通用,例如:

split(vec, 0:(length(vec)-1) %% X)

其中vec是我们要划分的向量,X是您的多重性

答案 2 :(得分:0)

这比乔兰的答案丑陋,但您也可以循环执行此操作,并使用grep()提取以特定值结尾的数字:

yourlist <- vector("list", 10)

for (i in 1:10) {
  yourlist[[i]] <- grep(paste0(i %% 10, "$"), 1:100)
}