L'idea iniziale era quasi corretta, solo l'espressione regolare era sbagliata, perché .
corrisponde a qualsiasi simbolo. Hai bisogno di qualcosa di simile (questo convertirà vettore numerico a un vettore di carattere)
df$a <- gsub("\\.", ",", df$a)
Inoltre è possibile cambiare l'output di stampa R, tracciando e le azioni della funzione as.character. Si cambia dalla sua default con:
options(OutDec= ",")
E un'altra opzione è utilizzata format
funzione.
format(df, decimal.mark=",")
presumo che si cura di come i numeri sono stampati (output), in quanto internamente numerico viene memorizzato come un numero in virgola mobile a doppia precisione (Aggiornamento grazie al commento di @digemall). Inoltre, a meno che per alcune funzioni come read.table
sia specificatamente specificato che il separatore decimale sia ,
, non è possibile fare diversamente, poiché per impostazione predefinita ,
viene utilizzato per separare gli argomenti della funzione.
E NA
vengono introdotti esattamente per tale motivo (oltre alla regex errata).
df$a <- as.numeric(gsub("\\.", ",", df$a))
Per impostazione predefinita parser non sa che ,
è usato come separatore decimale.
fonte
2014-11-26 20:34:44
Vuoi dire che vuoi ancora valori numerici, ma vuoi che il '.' sia', '? –
Esattamente. È possibile? –
Finlandese (Finlandia). E il separatore decimale è una virgola. –