我有一个应用程序需要将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
此解决方案似乎效率低下。有没有更有效的方法来完成这项任务?
答案 0 :(得分:0)
这可能是你要找的rep_len
rep_len(1:7, length.out = length(objects))
# [1] 1 2 3 4 5 6 7 1 2 3