R重复n次

时间:2017-01-22 16:58:08

标签: r

我有一个应用程序需要将n个对象排序为x个连续编号的组。当n个对象可以使用rep()函数在x个组中平均分配时,这很简单:

objects <- c(1: 10)
groups <- 5
assign1 <- rep(1:groups, times= (length(objects)/groups))
assign1
[1] 1 2 3 4 5 1 2 3 4 5

但是,当对象不能被组大小整除时,组分配可能太长或太短:

groups <- 7
assign2 <- rep(1:groups, times= (length(objects)/groups))
assign2
[1] 1 2 3 4 5 6 7

这可以通过以下方式解决:

assign_set <- rep(1:groups, times= (length(objects)/groups)+1 )
assign3 <- assign_set[1:length(objects)]
assign3
[1] 1 2 3 4 5 6 7 1 2 3

此解决方案似乎效率低下。有没有更有效的方法来完成这项任务?

1 个答案:

答案 0 :(得分:0)

这可能是你要找的rep_len

rep_len(1:7, length.out = length(objects))
# [1] 1 2 3 4 5 6 7 1 2 3