是否有相当于 data.table::rleid 的 dplyr?

2023-12-07

data.table提供了很好的便利功能,rleid对于游程编码:

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

我可以在基地模仿这个R with:

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

有谁知道一个dplyr等效(?)或者是创建的“最佳”方式rleid行为与dplyr是做类似下面的事情

library(dplyr)

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

df %>%
  mutate(rleid = my_rleid)

你可以这样做(当你同时拥有数据表 and dplyr已加载):

DT <- DT %>% mutate(rlid = rleid(grp))

这给出:

> DT
    grp value rlid
 1:   A     1    1
 2:   A     2    1
 3:   B     3    2
 4:   B     4    2
 5:   C     5    3
 6:   C     6    3
 7:   C     7    3
 8:   A     8    4
 9:   B     9    5
10:   B    10    5

当你不想加载时数据表您还可以单独使用(如@DavidArenburg 在评论中提到的):

DT <- DT %>% mutate(rlid = data.table::rleid(grp))

正如 @RichardSriven 在他的文章中所说comment你可以复制/窃取它:

myrleid <- data.table::rleid
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否有相当于 data.table::rleid 的 dplyr? 的相关文章

随机推荐

  • 使用 Google 服务帐户模拟用户列表

    根据文档 Google Apps 域管理员可以向服务帐户授予域范围内的权限 以代表域中的用户访问用户数据 我的轻描淡写是 这赋予了服务帐户访问数据的权限全部用户域内 有没有办法限制哪些用户服务帐户有权访问 例如 使用 Google Cale
  • 即使在同步期间也会执行自定义 gradle 任务

    所以我确信这是一个非常愚蠢的错误 但我需要你的帮助 因为我不是 gradle 专家 TASK 从文件中读取 versionCode 添加 1 并将其保存回来 task executeOrderSixtySix def versionProp
  • 第二次调用回调时 JVM 崩溃

    我使用 JNA 调用本机库 我的回调接口 public interface PPAEvent extends Callback void callback int eventCode int opCode String Data 我有一个回
  • firebase.auth.GoogleAuthProvider 不是构造函数

    我正在尝试在 Vue 框架中使用 firebase 来使用 google 标志 我不知道这是什么错误 任何人都可以帮助我解决这个问题 vue runtime esm js 2b0e 1888 TypeError firebase js WE
  • swig 无法找到 openssl conf

    尝试安装 m2crypto 并出现这些错误 有人可以帮忙吗 SWIG evp i 12 Error Unable to find openssl opensslconf h SWIG ec i 7 Error Unable to find
  • 将不同的列传递给函数内的 aes

    我正在尝试编写一个函数 该函数使用不同的 aes 参数调用 ggplot hmean lt function data column Label label ggplot data aes column geom histogram fac
  • HTML 中的空脚本标签是怎么回事? [复制]

    这个问题在这里已经有答案了 要在 HTML 页面中包含外部 JavaScript 文件 您可以使用以下命令 该标签的主体是空的 但我必须输入字符串script两次 为什么 HTML 中没有 XML 风格的隐式结束标记 如下所示 如果它是有效
  • 如何在 RichTextBox 中设置内嵌图像垂直居中

    我正在开发 WPF 我在 RichTextBox 中显示 RichText 数据 因为它采用了 WindowsFormHost 在其中我采用 WinForm RichTextBox 来显示具有图像 文本的 RichTextData 但是 当
  • Jenkins 显示 JMeter 脚本失败,即使脚本实际上通过了

    I have my jmeter script running from a jenkins job but it is always reporting it as failed even though the script actual
  • 如何使用java和PDFBox从PDF中获取字符的Unicode

    我正在使用 Apache PDFBox 和 Java 来解析 PDF 并从中获取所有信息 提取文本仅适用于英语 对于其他语言 我只得到一些特殊字符 例如 提取阿拉伯字符 将在打印时给出字符串 当我将计算机的 区域和语言 从英语更改为阿拉伯语
  • takeWhileInclusive 的这种实现安全吗?

    我发现以下包容性的实现takeWhile found here fun
  • Android 7 Genymotion 模拟器上的 Google Play 服务

    我购买了 Genymotion 目的是通过 Android 7 0 和 Google Play 进行模拟 Android 7 0 在 Genymotion 上运行良好 但我无法在其上安装 Google Play Google Play 在
  • 将 NULL 值排序到表末尾

    PostgreSQL 有没有办法对行进行排序NULL字段中的值是否到所选表的末尾 Like SELECT FROM table ORDER BY somevalue PUT NULL TO END NULL values are默认排在最后
  • 缩放后重新计算面板滚动位置

    将 C 表单应用程序与 PictureBox 嵌入面板中 以便在图像和 PictureBox 需要水平或垂直滚动 时利用其他帖子中建议的面板自动滚动 想要缩放图像并重新计算 AutoScrollPosition 以在缩放后保持相同的点可见
  • 调用sink()后R输出没有出现

    我有一组复杂的 R 脚本 并决定通过调用所有与调试相关的消息message 我试图找到一种方法来抑制所有消息 并偶然发现了这个SO post 建议我尝试使用sink 所以我将以下代码行插入到我的脚本中 并设置我的config debug m
  • 如何制作一个不会被优化掉的无限空循环?

    The C11标准似乎暗示具有常量控制表达式的迭代语句不应被优化 我的建议来自这个答案 其中特别引用了标准草案中的第 6 8 5 节 其控制表达式不是常量表达式的迭代语句 可以由实现假定终止 在那个答案中它提到了一个像这样的循环while
  • C++向量,这段代码是什么意思?

    我有这个代码 const int maxnodes 5000 struct Edge int to rev int f cap vector
  • 如何在快速滚动时自定义 Alpha 索引器

    我有一个ListView with AlphaIndexer实施使用SectionIndexer 我想知道是否可以自定义快速滚动时显示的 Alpha 索引器框 即更改其颜色 背景 文本字体 颜色等 例如 Edited或者 当该框与FastS
  • 隐藏 NULL 行组 JasperReports

    有没有办法在 Crosstab 中隐藏具有 NULL 值的行组 None
  • 是否有相当于 data.table::rleid 的 dplyr?

    data table提供了很好的便利功能 rleid对于游程编码 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 gr