2015-07-20 17 views
12

Sono nuovo a R e volevo sostituire i punti in "2014.06.09" in "2014-06-09". Sto usando la funzione gsub() per questo. Segsub() in R non sostituisce '.' (punto)

> x="2014.06.09" 
> gsub('2','-',x) 
[1] "-014.06.09" 

Ma quando provo

> gsub('.','-',x) 
[1] "----------" 

invece di "2014/06/09".

classe PS- (x) è 'carattere'

Può qualcuno mi può suggerire un modo per ottenere questo diritto e anche il motivo per cui non funziona per '' (Dot)

risposta

30

Potrebbe essere necessario per sfuggire alla . che è un carattere speciale che significa "qualsiasi carattere" (dal commento di @Mr Flick)

gsub('\\.', '-', x) 
#[1] "2014-06-09" 

O

gsub('[.]', '-', x) 
#[1] "2014-06-09" 

O come @ Moix menzionato nei commenti, possiamo anche usare fixed=TRUE invece di sfuggire ai caratteri.

gsub(".", "-", x, fixed = TRUE) 
+0

non è necessario uscire entro '[]' ??? Non lo sapevo ... – drmariod

+1

@drmariod Sì, questa è un'alternativa – akrun

+4

Oppure usa 'fixed = TRUE' che non usa espressioni regolari ma cerca solo i caratteri. 'gsub (". "," - ", x, fixed = T)' – Molx