【发布时间】:2020-08-14 14:50:23
【问题描述】:
我有以下data.table
df <- data.table(id=c(1,2,3,4),
medication=c("Abc de 3 MG", "Afg frt re 4 MG/ML","Agh","Aj yr 5 MG"))
与
id medication
1: 1 Abc de 3 MG
2: 2 Afg frt re 4 MG/ML
3: 3 Agh
4: 4 Aj yr 5 MG
我想从药物中提取剂量,并创建一个名为doses的列
id medication doses
1: 1 Abc de 3 MG
2: 2 Afg frt re 4 MG/ML
3: 3 Agh <NA>
4: 4 Aj yr 5 MG
它应该包含数字和单位。并非每种药物都有编号和单位,应包含在 NA 中。
我查看了tidyverseextract 函数,但找不到可以提取numeric 和character 值的内容。
我将data.table 与大型数据集一起使用。省时的功能很棒。
【问题讨论】:
-
df[,doses := sub(".*(\\d.*)|.*","\\1",medication)]??
标签: r data.table character extract numeric