2013-01-16 10 views
8

Mam proste ramki danych:Konwersja dwie kolumny daty i czasu danych do jednego

D <- c("2012/12/14", "2012/12/14") 
Time <- c("18:40:37", "18:40:48") 
df1 <- data.frame(D, Time) 

pragnę połączyć dwie kolumny daty i czasu informacje w jeden, najlepiej w formacie dzień, miesiąc , rok, czas.

Jak miałbym to zrobić?

+0

Jak TIMESTAMP? – duffymo

Odpowiedz

16
R> within(df1, { timestamp=format(as.POSIXct(paste(D, Time)), "%d/%m/%Y %H:%M:%S") }) 

      D  Time   timestamp 
1 2012/12/14 18:40:37 14/12/2012 18:40:37 
2 2012/12/14 18:40:48 14/12/2012 18:40:48 
+0

Wielkie dzięki @rcs - ale jak mogę uzyskać dodatkową kolumnę w mojej ramce danych (df1) z tą połączoną kolumną daty/czasu w? –

+0

Wielkie dzięki - to jest idealne @rcs. –

+3

Wiem, że ten komentarz jest spóźniony o dwa lata, ale odpowiedź powinna być naprawdę df1 <- w ... –

2

Nieco krótsza alternatywa może być:

df1 <- within(df1, { timestamp=strptime(paste(D, Time), "%Y/%m/%d%H:%M:%S") }) 
df1 
     D  Time   timestamp 
1 2012/12/14 18:40:37 2012-12-14 18:40:37 
2 2012/12/14 18:40:48 2012-12-14 18:40:48 
1
df1$TS <- as.POSIXct(paste(df1$D, df1$Time)) 

To stworzy dodatkową kolumnę TS w DF1, która łączy datę i czas i być typu POSIXct. Możesz potwierdzić przez:

str(df1) 
Powiązane problemy