Так вы утверждаете, вы хотите только 20.9
из вашей строки и все после удаления, это сделает трюк.
> temp <- ' 20.9°C \n a 07'
> temp2 <- sub('^ (.*?)Â[^Â]+', '\\1', temp)
> temp2
## [1] "20.9"
Если вы в конечном итоге нужно извлечь температуры, вы могли бы начать с чего-то вроде этого:
> library(gsubfn)
> temp <- ' -0.5°C \n \n 20.9°C a +25.0°C'
> temp2 <- strapply(temp, '([+-]?[0-9]+\\.[0-9]+)')[[1]]
## [1] "-0.5" "20.9" "+25.0"
Based свой комментарий, как я могу преобразовать 25/08/14
в 25-08-2014
?
gsub('([0-9]{2})/([0-9]{2})/([0-9]{2})', '\\1-\\2-20\\3', '25/08/14')
## [1] "25-08-2014"
'GSUB ("^ \ + | Â ° * $.", "", Темп)' вернет вас '20.9' но вы можете Beed лучше регулярное выражение в зависимости от того, что вы на самом деле нужно. – hrbrmstr
'07' также являются цифрами, поэтому каково ваше эмпирическое правило, что нужно удалить и что сохранить? –
'as.numeric (scan (text = gsub (" [^. 0-9] "," ", temp), what =" ", sep =" ")) # [1] 20.9 7.0' Если вам нужны оба номера – akrun