r - 强制 .GRP 计数器从 data.table 中的 2 而不是 1 开始
问题描述
如何强制 data.table 中的 .GRP 从 2 而不是 1 开始组计数器?
我有一个 data.table ,其中包含我想按组顺序排序的组。
example_data.table <- data.table(Var1 = c(1,2,2,4,5,5,5), Var2 = c(1,2,3,7,1,2,3) )
当我使用 .GRP 计数器时,它以第一个组合作为 conter 1 开始。
Group_table <- setDT(example_data.table)[, label := .GRP, by = c("Var1", "Var2" )]
但我想将Var1值为4且Var2值为7的组设置为计数器值 1,然后是下一个。
如何使用 .GRP 以使Var1为4和Var2为7将一个计数器作为1并将其他计数器作为下一个顺序?
所以,我在想的是手动给 counter 作为 1 所需的组合,而其他人则从 2 开始计数器。还有其他方法,但我有点困惑。
解决方案
如果您只有一个带有 的条目Var1 = 4 & Var2 = 7
,那么您可以从 中删除该条目.GRP
,并使用replace
1 替换它,即
library(data.table)
dt1[-(which(dt1$Var1 == 4 & dt1$Var2 == 7)), Counter := .GRP + 1, by = c('Var1', 'Var2')][,
Counter := replace(Counter, is.na(Counter), 1)][]
这使,
Var1 Var2 Counter 1: 1 1 2 2: 2 2 3 3: 2 3 4 4: 4 7 1 5: 5 1 5 6: 5 2 6 7: 5 3 7
推荐阅读
- javascript - 如何使用 Chrome.storage Chrome 扩展程序保存数据 [MV2]
- c# - 如何使用现有的 PDB 文件反编译我的 DLL 文件以恢复我的代码以便识别?
- android - minifiyEnabled 在 android 启动屏幕后导致应用程序崩溃
- c# - 生成链接以确认电子邮件在 ASP.NET Core API 中返回 null
- azure - 如何使用 Azure AD B2C 作为 Amazon Cognito 的 IdP
- java - maven 多级继承排除
- excel - Excel,VBA:替换从 Excel 输入框中获得的变量中的字符串
- java - 在customListener的情况下Spring批处理重试问题
- python - 从文件中读取的数据与看似相同的字符串不匹配
- css - 仅在移动设备上的 translateY 动画期间具有 scaleX(-1) 的元素消失