我有一個包含國際格式數字(即字符串)的文件,其中包括測量單位。在這種情況下,小數位用「,」表示,1e3分隔符表示爲「。」。 (即德國數字格式)。將國際格式的字符串轉換爲數字
a <- c('2.200.222 €',
' 180.109,3 €')
或
b <- c('28,42 m²',
'47,70 m²')
我想這些字符串高效地轉換成numeric
。我試着通過代碼像
require(stringr)
str_extract(a, pattern='[0-9]+.[0-9]+.[0-9]+')
str_extract(b, pattern='[0-9]+,[0-9]+')
但是過濾掉的數字,這似乎太容易出錯,我想必須有一個更加規範的方式。所以這裏是我的問題:是否有一個自定義函數,包或其他能夠解決這個問題的東西?
非常感謝!
你可能會討論一些你看到的錯誤嗎? –
其實我不確定如何指定正則表達式。例如,「[0-9] +。[0-9] +。[0-9] +,[0-9] +」對於所有情況都可以嗎?例如對於像'c('23,3')'這樣的數字與'c'('12l.120.222.23,3')'相比,實際上我想知道一般情況下是否存在這種情況的函數。謝謝! – Seb
'taRifx :: destring'就像你想要的一樣。 –