2017-09-02 4 views
0

Könnten Sie bitte lassen Sie mich wissen, wie ich Datum und Uhrzeit aus extrahieren kann ("2015-08-11 03:14:00 UTC - 2015-08-11 04:14: 00 UTC "). Beachten Sie, dass diese Zeichenfolge ein Zeitintervall mit zwei Daten und zwei Zeiten enthält. Ich möchte es in 4 einzelne Strings wie Datum 1, Zeit 1, Datum 2, Zeit 2 aufteilen und dann in 4 verschiedenen Vektoren speichern.Extrahieren Sie zwei kombinierte Daten und Uhrzeiten aus einer Zeichenfolge

Danke.

+0

In R ein Zeitobjekt muss ein Datum mit ihr verbunden sind. Für eine weitere Analyse würde ich vorschlagen, den Zeitteil mit dem Datum zu halten und das Ergebnis als ein POSIXct-Objekt zu speichern. – Dave2e

+0

Jetzt habe ich "2015-08-10 07:14:00 UTC" als Chr und ich habe das folgende verwendet, aber ich bekomme NA in allem. Daten $ datetime = as.POSIXct (Daten $ datetime, Format = '% m /% d /% Y% H:% M'). – Ali

+1

Das funktioniert jetzt: as.POSIXct (Daten $ Datetime, Format = '% Y-% m-% d% H:% M:% S') – Ali

Antwort

2

Versuchen Sie Folgendes.

x <- "2015-08-11 03:14:00 UTC--2015-08-11 04:14:00 UTC" 
y <- strsplit(x, "--")[[1]] 

dates <- as.Date(y) 
times <- strftime(y, format = "%H:%M:%S") 
0

Sie haben nie erwähnt, ob Sie funktionale Daten und Uhrzeiten aus Ihrer Eingabezeichenfolge benötigen. Wenn Sie jeden Teil Ihres Zeitstempels einfach analysieren müssen, dann ist gsub eine Option.

x <- "2015-08-11 03:14:00 UTC--2015-08-11 04:14:00 UTC" 
y <- unlist(strsplit(x, "--")) 
dates <- sapply(y, function(x) gsub("(\\d{4}-\\d{2}-\\d{2}).*", "\\1", x)) 
times <- sapply(y, function(x) gsub(".*(\\d{2}:\\d{2}:\\d{2}.*)", "\\1", x)) 
dates 
[1] "2015-08-11" "2015-08-11" 
times 
[1] "03:14:00 UTC" "04:14:00 UTC" 

Demo hier:

Rextester

+0

Danke. Ich habe auch einen einfacheren Weg gefunden: Wir können einen String definieren und substr (str1, ..., ...) verwenden. – Ali

Verwandte Themen