0

我有需要保持一致的医院病房数据。第一个数字是楼层号,后面的字母是病房缩写,最后两个数字是床号。

所以 2EA 28 将是 2 楼,Ward East 和 Bed 28。

这些位置输入的空格不一致,因此我有以下内容:

   toyraw<-data.table(incident_no = c(1:6), location =c("2EA17","2EA 17", "1ED1", "1ED23", "1ED 34","ICU24"))

我希望它看起来像以下

   toyideal<-data.table(incident_no = c(1:5), location =c("2EA 17","2EA 17", "1ED 1", "1ED 23", "1ED 34", "ICU 24"))

如果前面没有数字,我会一次分出数字和字符,但因为它是数字,所以字符数字会造成问题。有 1462 行。

更复杂的情况是,像 ICU 这样的底层病房没有预先编号。

根据要求添加 - 人类可读的名称

人类可读的名称:

additional<-data.table(incident_no = c(1:5), location =c("2EA 17","2EA 17", "1ED 1", "1ED 23", "1ED 34"),
                    human_Readable = c("Ward 2 East Bed 17","Ward 2 East Bed 17", "Ward 1 Emergency Department
                                       Bed 1", "Ward 1 Emergency Department Bed 23", "Ward 1 Emergency Department Bed 24",
                                       "Ward ICU Bed 24"))
4

1 回答 1

2

您可以gsub()为此使用:

> gsub("(\\d*)(\\D*)\\s*(\\d*)",
       "Floor \\1 Ward \\2 and Bed \\3.",
       gsub(" ", "", "1ED 34"))

[1] "Floor 1 Ward ED and Bed 34."

这是我使用的正则表达式:

(\\d*)(\\D*)\\s*(\\d*)

正则表达式101

于 2016-07-21T07:48:27.547 回答