我有一个字符串,其中一列包含由一个字母后跟一个3位数字组成的代码串。我想检查是否有任何重叠的代码跨行。
一个例子是(注意,第1行和第2行之间有一个重叠(B258):
df <- data.frame(ICD_code = c("A581-A589, B200-B299, B354-B355", "B258, I230-I233, J201-J300, K353", "C001-C005, C020-C023, C781"),
category = c(1, 2, 3))
df
ICD_code category
1 A581-A589, B200-B299, B354-B355 1
2 B258, I230-I233, J201-J300, K353 2
3 C001-C005, C020-C023, C781 3
为此,我尝试创建一个函数,以1为增量对“A581-A589”进行排序,但这不起作用,因为seq()只对数值有效。我想知道是否有人知道如何使用字母数字值生成序列?
我想要的结果:
ICD_code category overlap
1 A581-A589, B200-B299, B354-B355 1 T
2 B258, I230-I233, J201-J300, K353 2 T
3 C001-C005, C020-C023, C781 3 F
3条答案
按热度按时间ahy6op9u1#
8fsztsew2#
data.table版本:
测试结果:
cbeh67ev3#
下面是我的代码:
首先,确定要扩大的不同范围
这将扩展范围并将其存储在列中
重叠被检测到计数
ICD_code
出现的不同行。输出将是