我正在尝试为事务 ID 何时连续创建一个标志。由于我不会在这里讨论的原因,这些可能是一个危险信号。我遇到的问题是 ID 不标准化。有些只能是数字,有些是字母数字。我想确定供应商的交易对于 X 数量(连续多少个待定)交易是连续的情况。数据将按供应商分组,我想提取存在序列的实例的所有行和列。下面是一个非常简化的示例:
df <- read.table(text=
"Vendor 'Transaction ID'
ACME 1
ACME 2
ACME 3
JDOE A1
JDOE A6
JDOE A10
XYZ B12
XYZ B13
XYZ B14", header=TRUE)
在本例中,我希望提取所有 ACME 和所有 XYZ 行的供应商和事务 ID,因为它们按顺序排列。我做了一些研究,但没有找到一种似乎适合我想做的方法。
df |> filter(all(diff(as.numeric(str_extract(Transaction.ID, "\\d+$"))) == 1), .by = Vendor)