r - 通过 ID 内的条件重新启动来创建增量值

标签 r apache-spark dplyr sparklyr

所以我有2个字段的数据,ID和时间戳

ID Time
1 12
1 15
1 16
2 12
2 11

如果时间和前一次时间之间的差异小于 2(例如在同一 ID 内),我想增加,除非保持相同的值并在 ID 不同时从 1 重新开始。

期望的输出:

ID Time ID_SESSION
1 12 1
1 15 1
1 16 2
2 12 1
2 11 1

在 dplyr/sparklyr 中需要使用 R/来实现 Spark

最佳答案

使用基本 R 的单行代码,

with(df, ave(Time, ID, FUN = function(i)cumsum(c(TRUE, diff(i) <= 2))))
#[1] 1 1 2 1 2

关于r - 通过 ID 内的条件重新启动来创建增量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57164984/

相关文章:

hadoop - 为什么此示例导致NaN?

python - HDFS的图像数据帧用于图像分类

r - dplyr summarise()和summarise_each()对提供的函数进行额外的调用

r - 如何在 R 中舍入到 0.25 或 0.75,而不是 0.00 或 0.50?

r - 如何在R中列出整数向量

r - createDataFrame 中的 SparkR 瓶颈?

r - 分组摘要/子集 dplyr

r - 如何将数据框的字符列转换为Posixlt类型

r - 如何使用 RSelenium 在 Windows 机器上登录网站

r - Dplyr:在不均匀因子水平内减去