2014-08-27 2 views
1

Я хотел бы удалить буквы и символы из строки с помощью R,Как удалить письма с помощью R

temp <- " 20.9°C \n    a 07" 

все от А до конца, и получить использовали только

20.9 

I это выражение, но что-то не ...

temp2 <- (gsub("°C \n*?","", temp, ignore.case = FALSE, perl = TRUE)) 
+0

'GSUB ("^ \ + | Â ° * $.", "", Темп)' вернет вас '20.9' но вы можете Beed лучше регулярное выражение в зависимости от того, что вы на самом деле нужно. – hrbrmstr

+1

'07' также являются цифрами, поэтому каково ваше эмпирическое правило, что нужно удалить и что сохранить? –

+0

'as.numeric (scan (text = gsub (" [^. 0-9] "," ", temp), what =" ", sep =" ")) # [1] 20.9 7.0' Если вам нужны оба номера – akrun

ответ

1

Так вы утверждаете, вы хотите только 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" 
+0

Я буду рассматривать эту функцию –

Смежные вопросы