我想将向量分割成多个整数,所以给向量 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个新向量...
答案 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)
}