Ich habe einige Daten bekommt die Zeichenklasse:Probleme mit einer neuen Spalte in Datentabelle zu schaffen strptime mit
class(solarX[,MEASDATE])
[1] "character"
das wie folgt aussieht:
head(solarX[,MEASDATE])
[1] "1/05/2015 0:00" "1/05/2015 0:30" "1/05/2015 1:00" "1/05/2015 1:30" "1/05/2015 2:00" "1/05/2015 2:30"
aber ich will es nicht im Zeichenformat und muss in der Lage sein, auf den Stunden- und Minuten-Teil der Datum-Uhrzeit zuzugreifen.
, was ich versucht habe, ist:
strptime(solarX[,MEASDATE], "%d/%m/%Y %H:%M"))
die großen Werke, es gibt mir:
[1] "2015-05-01 00:00:00 AEST" "2015-05-01 00:30:00 AEST" "2015-05-01 01:00:00 AEST" "2015-05-01 01:30:00 AEST" "2015-05-01 02:00:00 AEST"
[6] "2015-05-01 02:30:00 AEST"
class(strptime(solarX[,MEASDATE], "%d/%m/%Y %H:%M"))
[1] "POSIXlt" "POSIXt"
Allerdings, wenn ich, indem Sie meine ursprüngliche Datentabelle gehen zu erweitern:
solarX[, date := strptime(solarX[,MEASDATE], "%d/%m/%Y %H:%M")]
(solarX ist meine Datentabelle)
erhalte ich die folgende Warnung:
Warning message:
In `[.data.table`(solarX, , `:=`(date, strptime(solarX[, MEASDATE], :
Supplied 11 items to be assigned to 17568 items of column 'date' (recycled leaving remainder of 1 items)
Und die Datentabelle zurück sieht schrecklich aus:
MEASDATE rrp exp_kwh date
1: 1/05/2015 0:00 33.99299 0 0,0,0,0,0,0,
2: 1/05/2015 0:30 31.53335 0 0,30, 0,30, 0,30,
3: 1/05/2015 1:00 29.37092 0 0,0,1,1,2,2,
4: 1/05/2015 1:30 28.03197 0 1,1,1,1,1,1,
5: 1/05/2015 2:00 26.82800 0 4,4,4,4,4,4,
6: 1/05/2015 2:30 25.22149 0 115,115,115,115,115,115,
Klar ich so aussehen nicht das „Datum“ -Spalte wollen, vielmehr haben sie gefüllt mit den Werten, die ich von der ursprünglichen strptime Funktion bekommen habe.
'solarX [, Datum: = strptime (MEASDATE, "% d /% m /% Y% H:% M") ] ' – HubertL
entfernen Sie die' SolarX' innerhalb der 'Strptime' – SymbolixAU
ja, was @HubertL sagte. – SymbolixAU