当缺少序列值时,将向量排序为重复序列 R
Sort vector into repeating sequence when sequential values are missing R
我想采用这样的向量:
x <- c(1,1,1,2,2,2,2,3,3)
并将此向量排序为重复序列,当值不存在时保持 1、2、3 的层次顺序。
return: c(1,2,3,1,2,3,1,2,2)
我们可以根据'x'
的顺序创建order
x[order(ave(x, x, FUN = seq_along))]
#[1] 1 2 3 1 2 3 1 2 2
或与 rowid
来自data.table
library(data.table)
x[order(rowid(x))]
#[1] 1 2 3 1 2 3 1 2 2
我想采用这样的向量:
x <- c(1,1,1,2,2,2,2,3,3)
并将此向量排序为重复序列,当值不存在时保持 1、2、3 的层次顺序。
return: c(1,2,3,1,2,3,1,2,2)
我们可以根据'x'
的顺序创建order
x[order(ave(x, x, FUN = seq_along))]
#[1] 1 2 3 1 2 3 1 2 2
或与 rowid
来自data.table
library(data.table)
x[order(rowid(x))]
#[1] 1 2 3 1 2 3 1 2 2