【发布时间】:2015-07-30 15:14:31
【问题描述】:
有没有比使用循环更快的方法来创建计数器索引?对于每个连续运行的相等值,索引应该相同。我发现循环非常慢,尤其是当数据很大时。
为了说明,这里是输入和期望的输出
x <- c(2, 3, 9, 2, 4, 4, 3, 4, 4, 5, 5, 5, 1)
所需的结果计数器:
c(1, 2, 3, 4, 5, 5, 6, 7, 7, 8, 8, 8, 9)
请注意,非连续运行具有不同索引。例如。查看值2 和4 的所需索引
我的低效代码是这样的:
group[1]<-1
counter<-1
for (i in 2:n){
if (x[i]==x[i-1]){
group[i]<-counter
}else{
counter<-counter+1
group[1]<-counter}
}
【问题讨论】:
标签: r performance loops indexing counting