web-dev-qa-db-fra.com

gsub () dans R ne remplace pas "." (point)

Je veux remplacer des points dans "2014.06.09" à "2014-06-09". J'utilise gsub () fonction pour cela. Si

x <-  "2014.06.09"
gsub('2', '-' ,x)
# [1] "-014.06.09"

Mais quand j'essaye

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

au lieu de "2014-06-09".

class(x)
# "character"

Certains peuvent-ils me suggérer un moyen d’y remédier, mais aussi pourquoi cela ne fonctionne pas pour '.' (point)

36
Zak

Vous devrez peut-être échapper à la . qui est un caractère spécial qui signifie "n'importe quel caractère" (tiré du commentaire de @Mr Flick)

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

Ou

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

Ou comme @Moix mentionné dans les commentaires, nous pouvons également utiliser fixed=TRUE au lieu d'échapper aux personnages.

 gsub(".", "-", x, fixed = TRUE)
70
akrun