我有一个包含国际格式数字(即字符串)的文件,其中包括测量单位。在这种情况下,小数位用“,”表示,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'就像你想要的一样。 –