Dieses Problem ist mit einer Frage verbunden, die ich earlier fragte. Ich habe einige Zeit damit verbracht, darüber nachzudenken, wie ich mein Problem klarer vermitteln und mich für die wortreiche Frage entschuldigen kann. Jeder Rat wird sehr geschätzt.Ist lubridate nicht wie Subsetting?
Im Folgenden finden Sie ein stark untergliedertes Hundert-Zeilen-Snippet des Datasets, mit dem ich arbeite.
SPD_2015 <- structure(list(summarized.offense.description = c("ASSAULT",
"THREATS", "CAR PROWL", "SHOPLIFTING", "MAIL THEFT", "THREATS",
"DISTURBANCE", "STOLEN PROPERTY", "TRESPASS", "VEHICLE THEFT",
"CAR PROWL", "THREATS", "STOLEN PROPERTY", "VEHICLE THEFT", "BURGLARY-SECURE PARKING-RES",
"CAR PROWL", "THREATS", "BIKE THEFT", "BURGLARY", "ASSAULT",
"STOLEN PROPERTY", "DISTURBANCE", "VEHICLE THEFT", "CAR PROWL",
"OTHER PROPERTY", "ASSAULT", "PROPERTY DAMAGE", "BURGLARY-SECURE PARKING-RES",
"ANIMAL COMPLAINT", "OTHER PROPERTY", "BURGLARY", "BURGLARY",
"CAR PROWL", "SHOPLIFTING", "BURGLARY", "PROPERTY DAMAGE", "DISTURBANCE",
"PROPERTY DAMAGE", "STOLEN PROPERTY", "OTHER PROPERTY", "MAIL THEFT",
"PROPERTY DAMAGE", "VEHICLE THEFT", "OTHER PROPERTY", "ROBBERY",
"CAR PROWL", "NARCOTICS", "OTHER PROPERTY", "BURGLARY", "DISTURBANCE",
"ASSAULT", "BURGLARY-SECURE PARKING-RES", "OTHER PROPERTY", "FRAUD",
"SHOPLIFTING", "OTHER PROPERTY", "OTHER PROPERTY", "DISTURBANCE",
"CAR PROWL", "STOLEN PROPERTY", "OTHER PROPERTY", "OTHER PROPERTY",
"VIOLATION OF COURT ORDER", "DISTURBANCE", "NARCOTICS", "ASSAULT",
"DISTURBANCE", "TRESPASS", "NARCOTICS", "CAR PROWL", "NARCOTICS",
"OTHER PROPERTY", "CAR PROWL", "CAR PROWL", "ASSAULT", "TRAFFIC",
"OTHER PROPERTY", "CAR PROWL", "PROSTITUTION", "OTHER PROPERTY",
"OTHER PROPERTY", "ASSAULT", "BURGLARY", "DISTURBANCE", "PROPERTY DAMAGE",
"PROPERTY DAMAGE", "BURGLARY", "VEHICLE THEFT", "FRAUD", "VEHICLE THEFT",
"FRAUD", "CAR PROWL", "BIKE THEFT", "CAR PROWL", "WARRANT ARREST",
"STOLEN PROPERTY", "CAR PROWL", "PROPERTY DAMAGE", "VEHICLE THEFT",
"BIKE THEFT"), occurred.date.or.date.range.start = c("04/17/2015 01:10:00 AM",
"11/15/2015 12:04:00 PM", "05/29/2015 08:00:00 PM", "12/15/2015 02:25:00 PM",
"07/28/2015 12:00:00 AM", "02/24/2015 06:01:00 PM", "05/24/2015 04:20:00 PM",
"03/13/2015 02:04:00 PM", "06/14/2015 08:00:00 AM", "05/19/2015 03:18:00 PM",
"07/18/2015 06:00:00 AM", "05/11/2015 05:16:00 PM", "01/08/2015 12:52:00 PM",
"06/17/2015 05:00:00 PM", "07/04/2015 12:00:00 AM", "10/26/2015 12:12:00 AM",
"05/01/2015 12:00:00 PM", "07/02/2015 10:00:00 PM", "01/10/2015 07:30:00 PM",
"02/17/2015 01:29:00 PM", "12/17/2015 02:26:00 AM", "08/04/2015 10:49:00 PM",
"10/27/2015 12:29:00 AM", "07/29/2015 03:00:00 PM", "10/24/2015 06:30:00 PM",
"02/20/2015 03:07:00 AM", "11/11/2015 09:00:00 AM", "03/24/2015 10:00:00 PM",
"11/03/2015 08:47:00 PM", "04/15/2015 02:00:00 PM", "07/15/2015 03:00:00 PM",
"11/17/2015 08:30:00 AM", "09/22/2015 05:00:00 PM", "02/09/2015 09:19:00 AM",
"01/07/2015 08:30:00 AM", "05/01/2015 07:30:00 AM", "04/26/2015 03:30:00 AM",
"04/18/2015 03:00:00 AM", "10/01/2015 08:00:00 PM", "05/07/2015 01:00:00 AM",
"02/05/2015 03:15:00 PM", "01/18/2015 05:00:00 PM", "10/17/2015 11:00:00 PM",
"03/23/2015 05:35:00 PM", "02/16/2015 07:25:00 PM", "07/30/2015 08:00:00 PM",
"11/10/2015 02:28:00 PM", "03/14/2015 10:10:00 AM", "12/10/2015 08:26:00 PM",
"10/05/2015 01:45:00 AM", "02/16/2015 01:56:00 PM", "10/19/2015 06:27:00 PM",
"12/01/2015 07:30:00 AM", "01/28/2015 08:40:00 PM", "05/01/2015 01:40:00 PM",
"10/30/2015 03:15:00 AM", "09/04/2015 03:34:00 PM", "06/06/2015 04:53:00 PM",
"07/22/2015 06:20:00 AM", "12/11/2015 01:41:00 PM", "05/20/2015 01:09:00 PM",
"09/18/2015 12:00:00 PM", "07/08/2015 11:05:00 PM", "02/22/2015 01:38:00 AM",
"07/22/2015 01:12:00 PM", "09/07/2015 10:43:00 AM", "08/11/2015 04:00:00 PM",
"10/13/2015 06:33:00 AM", "10/10/2015 05:32:00 PM", "11/15/2015 07:09:00 PM",
"11/19/2015 03:05:00 PM", "04/08/2015 04:33:00 PM", "05/11/2015 12:01:00 AM",
"04/21/2015 06:15:00 PM", "06/13/2015 10:29:00 AM", "06/22/2015 06:41:00 PM",
"09/03/2015 08:00:00 AM", "04/08/2015 06:00:00 PM", "07/17/2015 08:00:00 PM",
"08/29/2015 09:00:00 AM", "04/28/2015 01:46:00 PM", "09/07/2015 07:00:00 PM",
"12/30/2015 06:30:00 AM", "08/29/2015 11:37:00 PM", "08/24/2015 10:00:00 PM",
"06/17/2015 07:02:00 AM", "02/14/2015 10:21:00 PM", "03/29/2015 07:00:00 PM",
"10/01/2015 07:15:00 AM", "06/14/2015 03:00:00 PM", "12/16/2014 09:00:00 AM",
"02/14/2015 07:54:00 PM", "10/02/2015 08:17:00 AM", "05/14/2015 08:30:00 AM",
"07/07/2015 10:15:00 AM", "04/07/2015 01:48:00 AM", "11/02/2015 11:00:00 PM",
"04/16/2015 03:00:00 PM", "08/22/2015 08:09:00 AM", "10/24/2015 05:00:00 PM"
)), .Names = c("summarized.offense.description", "occurred.date.or.date.range.start"
), row.names = c(NA, -100L), class = c("tbl_df", "tbl", "data.frame"
))
Ich verwende den folgenden Code Zeitdaten von bereits existierenden Spalten zu extrahieren:
#Splitting time from column occured.date
SPD_2015 <- mutate(SPD_2015, occurred.time = str_sub(SPD_2015$occurred.date.or.date.range.start, -11, -1))
#Converting character to time for occured.time
SPD_2015$occurred.time <- strptime(SPD_2015$occurred.time, "%I:%M:%S %p") %>%
str_sub(-8, -1) %>%
hms()
#creating the occurred.time.hour value so I can isolate the hour value
SPD_2015 <- mutate(SPD_2015, occurred.time.hour = hour(occurred.time))
Jetzt habe ich eine Spalte, die den isolierten Stunden-Wert enthält, dass ein Verbrechen stattgefunden, die ich mit ggplot2 grafisch darstellen kann. Allerdings, wenn ich meine Teilmenge Daten mit dplyr:
#filtering data for only car prowl
car.prowl <- filter(SPD_2015, summarized.offense.description == "CAR PROWL")
Die Werte für die Zeit in den Spalten „occurred.time“ und „occurred.time.hour“ In meinen neu erstellten Datenrahmen (car.prowl) nicht mehr übereinstimmen. Die Spalte "accredited.time.hour" stimmt mit der Quelle überein, aber die Spalte "acreded.time" wird jetzt geändert.
Und nur dazu hinzuzufügen. Ich habe eine separate Datenrahmen für Auto prowls denn als ich ursprünglich versucht, die aufgetreten Zeit der Verbrechen plotten ggplot mit
ggplot(car.prowl, aes(hour(occurred.time))) +
geom_bar()
Ich würde den Fehler: „Fehler: Ästhetik muss entweder Länge 1 oder die gleiche wie die Daten sein (14): x ". Was macht Sinn und ich verstehe.
> dim(car.prowl)
[1] 14 4
Aber car.prowl hat eine Länge von 14, und wenn ich den folgenden Code eingeben:
> length(hour(car.prowl$occurred.time))
[1] 100
Es zeigt die Länge des ursprünglichen Datensatzes anstelle der Teilmenge Länge von 14
Kann jemand eine Lösung oder einen Workaround vorschlagen? Danke
Vielen Dank für Ihre Antwort! Ihr Ansatz zum Extrahieren von Datum und Uhrzeit war definitiv effizienter und ich kann mein ursprüngliches Problem darstellen. Ich bin immer noch ein wenig verwirrt darüber, was mit meiner Vorgehensweise schief gelaufen ist, aber ich denke, das ist die Natur von R, bis du all seine kleinen Eigenheiten verstehst. – RunAmuck