0

一貫性が必要な病棟データがあります。最初の数字はフロア番号、それに続くアルファベットは病棟の頭字語、最後の 2 文字の数字はベッド番号です。

したがって、2EA 28 は 2 階、病棟東、ベッド 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"))

先頭に数値がない場合は、数値と文字を一度に 1 つずつサブアウトしますが、数値であるため、文字数値が問題を引き起こしています。1462 行あります。

さらに複雑なことに、ICU などの 1 階の病棟には先行番号がありません。

リクエストに応じて追加 - 人間が読める名前

人間が読める名前:

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 に答える