2016-06-17 6 views
2

Ich habe Daten payments gespeichert in der Tabelle unten, dass ich riefen aus einer Datenbank nahm Data taken from databaseändert das Format der Daten in der Tabelle

Jetzt brauche ich nur das Format der Week Spalt zu ändern, so anstatt sie zu sein (201625) bis (2016-25). Fügen Sie nur Bindestrich dazwischen hinzu, um es klarer zu machen, dass es ein Jahr und dann Woche ist. Natürlich kann ich nicht die Daten aus der Datenbank ändern, damit ich

versucht mit
pdm_data [2] <- as.numeric(gsub("6","-",as.character(pdm_data[ ,2]))) 

aber das sieht nur für eine tatsächliche Zahl zu suchen, nicht Raum zu schaffen, und dann in diesem Raum Bitte

mir hilfst Bindestrich setzen wirklich zu schätzen

+0

Wochen sind 1-9 '20160x' oder' 2016x'? Ich habe keine Daten heruntergeladen, versuche 'gsub ('(? <=^\\ d {4})', '-', c ('200001', '20001', '201625'), perl = TRUE) ' – rawr

+0

ähnlich http://stackoverflow.com/questions/18482929/regex-to-add-hypen-in-dates – rawr

Antwort

1

die str_replace von stringr Paket Versuchen:

stringr::str_replace("201625", "(\\d{4})(\\d{2})", "\\1-\\2") 
[1] "2016-25" 
+0

Nun, gibt es etwas, das die ganze Spalte ändert? der obige Code ändert sich nur bei Zeile in der Spalte –

+0

'str_replace' ist vektorisiert. Also 'pdm_data $ Week <- stringr :: str_replace (pdm_data $ Week," (\\ d {4}) (\\ d {2}) "," \\ 1 - \\ 2 ") sollte das Ganze ersetzen Säule. – Psidom

+0

Yup es hat funktioniert, vielen Dank! –

Verwandte Themen