24 Stimmen

eine Datumsspalte in einem Datenrahmen formatieren

Ich habe die folgenden Daten aus einem Datenrahmen

Name,JoiningDate,AmtPaid
Joe,12/31/09,1000
Amy,10/28/09,100
John,05/06/10,200

Das Beitrittsdatum wird als Faktor berücksichtigt (wenn ich sapply ). Wie kann ich dies in ein Datum umwandeln und dann sortieren nach JoiningDate ?

51voto

Tom Liptrot Punkte 2213

So sollte es gehen (wobei df Ihr Datenrahmen ist)

df$JoiningDate <- as.Date(df$JoiningDate , format = "%m/%d/%y")

df[order(df$JoiningDate ),]

0 Stimmen

Ich habe ein ähnliches Problem. Wie ist es möglich, dass mode(as.Date(df$JoiningDate, "%m/%d/%Y")) gibt zurück. numeric ?

3 Stimmen

@ Lao Tzu Sie sollten eine neue Frage aufmachen, Ihre Anfrage wird hier vielleicht nicht gesehen. Ich glaube, dass intern die Daten als numerische Sekunden seit dem Beginn der Unix-Zeit (1. Januar 1970) gespeichert werden. Hoffentlich hilft das.

5 Stimmen

Wenn ich das tue, verwandelt sich meine Spalte in NAs

6voto

Ray Kodiak Punkte 59

Versuchen Sie dieses Paket, es wirkt Wunder und wurde für Datum/Uhrzeit entwickelt...

library(lubridate)
Portfolio$Date2 <- mdy(Portfolio.all$Date2)

0voto

andschar Punkte 2731

El data.table Paket hat seine IDate Klasse und ähnliche Funktionalitäten wie lubridate oder die zoo Paket. Das könnten Sie tun:

dt = data.table(
  Name = c('Joe', 'Amy', 'John'),
  JoiningDate = c('12/31/09', '10/28/09', '05/06/10'),
  AmtPaid = c(1000, 100, 200)
)

require(data.table)
dt[ , JoiningDate := as.IDate(JoiningDate, '%m/%d/%y') ]

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X