У меня есть фрейм данных df1
с информацией о приобретениях по ID.Каждый получатель A
и целевой B
имеют свои четырехзначные коды SIC на одной строке, разделенные знаком "/".
df1 <- data.frame(ID = c(1,2,3,4),
A = c("1230/1344/2334/2334","3322/3344/3443", "1112/9099", "3332/4483"),
B = c("1333/2334","3344/8840", "4454", "9988/2221/4483"))
ID A B
1 1230/1344/2334/2334 1333/2334
2 3322/3344/3443 3344/8840
3 1112/9099 4454
4 3332/4483 9988/2221/4483
. Мне нужно классифицировать каждый идентификатор транзакции следующим образом:
- Если первичный код (то есть первые четыре цифры) либо А, либо В совпадает с любым другим кодом, чем первичный код В или А, тогда столбец Primary.other.match принимает значение 1 и 0, в противном случае,
- Если любой другой код, кроме первичного кода A или B, совпадает с любым другим, чем первичный код B или A, столбец Other.other.match принимает значения 1 и 0, в противном случае.
Желаемый результат показан ниже в обновленном df1.
df1 <- data.frame(ID = c(1,2,3,4),
A = c("1230/1344/2334/2334","3322/3344/3443", "1112/9099", "3332/4483"),
B = c("1333/2334","3344/8840", "4454", "9988/2221/4483"),
Primary.other.match = c(0,1,0,0), #only if primary Code of A or B matches
any other code of B or A
Other.other.match = c(1,0,0,1)) # only if primary codes do not match
primary or any other codes, but any other codes match
ID A B Primary.other.match Other.other.match
1 1230/1344/2334/2334 1333/2334 0 1
2 3322/3344/3443 3344/8840 1 0
3 1112/9099 4454 0 0
4 3332/4483 9988/2221/4483 0 1
Спасибо за вашу помощь!