【发布时间】:2021-05-16 04:00:04
【问题描述】:
我遇到了一个小问题,希望有人能帮助我。
我有一个这样的数据框:
df <- data.frame(foo = 1:20, bar = c(0,0,1,0,0,0,1,2,0,0,1,2,3,0,0,0,1,2,3,4))
还有什么会得到这样的结果:
df_result <- data.frame(foo = 1:20, bar = c(0,0,1,0,0,0,2,2,0,0,3,3,3,0,0,0,4,4,4,4))
如何在不使用 while 循环的情况下执行此操作?
【问题讨论】:
-
看看
?rle。 -
@markus 旁注:您的解决方案在更大的向量上大约快 10 倍(例如
bar = unlist(sample(lapply(1:10, function(x) sequence(x) - 1), 1e6, replace = TRUE))。当然我们假设 连续 整数序列,如 OP 所示。
标签: r loops while-loop