相关疑难解决方法(0)

是否存在与data.table :: rleid等效的dplyr?

data.tablerleid为游程编码提供了一个很好的便利功能:

library(data.table)
DT = data.table(grp=rep(c("A", "B", "C", "A", "B"), c(2, 2, 3, 1, 2)), value=1:10)
rleid(DT$grp)
# [1] 1 1 2 2 3 3 3 4 5 5
Run Code Online (Sandbox Code Playgroud)

我可以在以下基础R上模仿这个:

df <- data.frame(DT)
rep(seq_along(rle(df$grp)$values), times = rle(df$grp)$lengths)
# [1] 1 1 2 2 3 3 3 4 5 5
Run Code Online (Sandbox Code Playgroud)

有没有人知道dplyr等效(?)或创建rleid行为的"最佳"方法dplyr是执行以下操作

library(dplyr)

my_rleid = rep(seq_along(rle(df$grp)$values), times = rle(df$grp)$lengths)

df %>%
  mutate(rleid = my_rleid)
Run Code Online (Sandbox Code Playgroud)

r run-length-encoding dplyr data.table

15
推荐指数
5
解决办法
2499
查看次数

标签 统计

data.table ×1

dplyr ×1

r ×1

run-length-encoding ×1