【问题标题】:data.table : create group ID based on group_vars and group orderdata.table :根据 group_vars 和组顺序创建组 ID
【发布时间】:2020-04-03 20:39:56
【问题描述】:

尝试为如下数据集创建组标识符。 V1 和 V2 部分识别组(可能是因为缺少组变量 V3)。但我还需要依赖行的顺序,以及 V2 值的变化。例如,groupd_id 1 和 3 都具有相同的 V1 和 V2 值。它们之间的唯一区别是它们之间存在不同的组。

我想创建顺序列(如下例所示):

  • group_id : 顺序组 ID
  • group_id2 : V1 中的顺序组 ID
d <- data.table(V1=c(rep('A',6),rep('B',5)),
                V2=c(rep(1,2),rep(2,2),rep(1,2),c(1,1,1,2,2)),
                V4=runif(11),
                group_id=c(1,1,2,2,3,3,4,4,4,5,5),
                group_id_within_V1=c(1,1,2,2,3,3,1,1,1,2,2))

【问题讨论】:

    标签: r group-by data.table grouping


    【解决方案1】:

    我想你正在寻找:

    d <- data.table(V1=c(rep('A',6),rep('B',5)),
        V2=c(rep(1,2),rep(2,2),rep(1,2),c(1,1,1,2,2)),
        V4=runif(11))
    d[, group_id := rleid(V1, V2)][, 
        group_id_within_V1 := group_id - min(group_id) + 1L, .(V1)]
    

    【讨论】:

      猜你喜欢
      • 2023-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多