2017-09-02 110 views
0

我正在尝试修正具有一些十进制数字错误输入错误的数据集。例如,一些条目被键入为“.15”而不是“0.15”。目前这个列是chr,但后来我需要将其转换为数字。替换以句点开头的单词

我试图选择所有以“句点”开头的“单词”。并用“0”代替期限。但似乎用于锚定字符串开头的“^”不适用于该句点。

我试着用:

dataIMN$precip <- str_replace (dataIMN$precip, "^.", "0.") 

但它在所有的项目,包括对正确输入的那些(那些不以句点开始)的开头放一个0。

+5

只要做'as.numeric(“.15”)'(OR'as.numeric(dataIMN $ precip)'),它会转换为数字并在必要时加上'0' –

+2

您需要''^ \\。“' – G5W

+2

另外,正确的正则表达式应该是'”^ \\“,您需要转义特殊字符。 –

回答

1

如果你需要做,因为你说,括号[]是“精确查找”正则表达式,或者您可以使用“\\”的转义字符,例如句号:

选项1 :

gsub("^[.]","0.",".54") 
[1] "0.54" 

选项2:

gsub("^\\.","0.",".54") 
[1] "0.54" 

否则,as.numeric也应自动照顾它。