Dank der R – Befehle, die du mir gezeigt hast, ist es mir nun gelungen ein Skript zu schreiben, welches die Daten aufbereitet und in eine neue Datei schreibt, alles im Prinzip wie geplant. Besten Dank dafür! Ich habe das Skript mal auf ein Minimum reduziert:
Code: Alles auswählen
setwd("C:/Users/RobinAOE/Desktop")
fasi <- read.table("P1.csv",
sep = ",", dec = ".", header = TRUE)
fasi$Traffic_T00_sRoad <- fasi$Traffic_T00_sRoad + 357
fasi$Traffic_T01_sRoad <- fasi$Traffic_T01_sRoad + 892
fasi$Traffic_T02_sRoad <- fasi$Traffic_T02_sRoad + 2565
fasi$Traffic_T03_sRoad <- fasi$Traffic_T03_sRoad + 2778
fasi$Traffic_T04_sRoad <- fasi$Traffic_T04_sRoad + 4640
ampel_1 <- subset(fasi, Car_Road_sRoad > 697.5 & Car_Road_sRoad < 797.5)
ampel_1$distance <- ampel_1$Traffic_T00_sRoad - ampel_1$Car_Road_sRoad
ampel_1$delta_v <- ampel_1$Car_v - ampel_1$Traffic_T00_LongVel
ampel_1$ttc <- (ampel_1$distance - 5) / ampel_1$delta_v
ampel_1$delta_a <- ampel_1$Car_ax - ampel_1$Traffic_T00_a_0_x
Eampel1ttc <- min(ampel_1$ttc)
Eampel1abstand <- min(ampel_1$distance)
Eampel1geschwindigkeit <- max(ampel_1$delta_v)
Eampel1beschleunigung <- max(ampel_1$delta_a)
ampel_2 <- subset(fasi, Car_Road_sRoad > 1249.5 & Car_Road_sRoad < 1349.5)
ampel_2$distance <- ampel_2$Traffic_T01_sRoad - ampel_2$Car_Road_sRoad
ampel_2$delta_v <- ampel_2$Car_v - ampel_2$Traffic_T01_LongVel
ampel_2$ttc <- (ampel_2$distance - 5) / ampel_2$delta_v
ampel_2$delta_a <- ampel_2$Car_ax - ampel_2$Traffic_T01_a_0_x
Eampel2ttc <- min(ampel_2$ttc)
Eampel2abstand <- min(ampel_2$distance)
Eampel2geschwindigkeit <- max(ampel_2$delta_v)
Eampel2beschleunigung <- max(ampel_2$delta_a)
ampel_3 <- subset(fasi, Car_Road_sRoad > 3067.5 & Car_Road_sRoad < 3167.5)
ampel_3$distance <- ampel_3$Traffic_T02_sRoad - ampel_3$Car_Road_sRoad
ampel_3$delta_v <- ampel_3$Car_v - ampel_3$Traffic_T02_LongVel
ampel_3$ttc <- (ampel_3$distance - 5) / ampel_3$delta_v
ampel_3$delta_a <- ampel_3$Car_ax - ampel_3$Traffic_T02_a_0_x
Eampel3ttc <- min(ampel_3$ttc)
Eampel3abstand <- min(ampel_3$distance)
Eampel3geschwindigkeit <- max(ampel_3$delta_v)
Eampel3beschleunigung <- max(ampel_3$delta_a)
ampel_4 <- subset(fasi, Car_Road_sRoad > 4527.5 & Car_Road_sRoad < 4627.5)
ampel_4$distance <- ampel_4$Traffic_T03_sRoad - ampel_4$Car_Road_sRoad
ampel_4$delta_v <- ampel_4$Car_v - ampel_4$Traffic_T03_LongVel
ampel_4$ttc <- (ampel_4$distance - 5) / ampel_4$delta_v
ampel_4$delta_a <- ampel_4$Car_ax - ampel_4$Traffic_T03_a_0_x
Eampel4ttc <- min(ampel_4$ttc)
Eampel4abstand <- min(ampel_4$distance)
Eampel4geschwindigkeit <- max(ampel_4$delta_v)
Eampel4beschleunigung <- max(ampel_4$delta_a)
ampel_5 <- subset(fasi, Car_Road_sRoad > 5067.5 & Car_Road_sRoad < 5167.5)
ampel_5$distance <- ampel_5$Traffic_T04_sRoad - ampel_5$Car_Road_sRoad
ampel_5$delta_v <- ampel_5$Car_v - ampel_5$Traffic_T04_LongVel
ampel_5$ttc <- (ampel_5$distance - 5) / ampel_5$delta_v
ampel_5$delta_a <- ampel_5$Car_ax - ampel_5$Traffic_T04_a_0_x
Eampel5ttc <- min(ampel_5$ttc)
Eampel5abstand <- min(ampel_5$distance)
Eampel5geschwindigkeit <- max(ampel_5$delta_v)
Eampel5beschleunigung <- max(ampel_5$delta_a)
Endergebins <- matrix(c(Eampel1abstand, Eampel1geschwindigkeit, Eampel1beschleunigung, Eampel1ttc, Eampel2abstand, Eampel2geschwindigkeit, Eampel2beschleunigung, Eampel2ttc, Eampel3abstand, Eampel3geschwindigkeit, Eampel3beschleunigung, Eampel3ttc, Eampel4abstand, Eampel4geschwindigkeit, Eampel4beschleunigung, Eampel4ttc, Eampel5abstand, Eampel5geschwindigkeit, Eampel5beschleunigung, Eampel5ttc),ncol=1,byrow=TRUE)
Endergebnistabelle <- as.table(Endergebins)
write.table(Endergebnistabelle, "P1_final.csv")
Code: Alles auswählen
Eampel1ttc <- min(ampel_1$ttc)
Code: Alles auswählen
Eampel1geschwindigkeit <- mean(ampel_1$delta_v)
Ich habe auch echt Interesse für das Programm R entwickelt und denke, dass ich dieses vielleicht auch in Zukunft an der ein oder anderen Stelle nutzen werde. Diesbezüglich hätte ich auch noch ein paar Interessensfragen, wie man das ein oder andere vielleicht besser/übersichtlicher lösen kann (nur falls du noch Zeit und Lust hast diese zu beantworten, es wäre jetzt nicht dringend).
Jedes Mal, wenn ich diesen Code am Anfang ausführe (um den Variablen Konstanten hinzuzuaddieren) muss ich aufpassen, dass ich den Befehl nur einmal ausführe (ansonsten wird jedes Mal erneut addiert). Gibt es eine Möglichkeit diesen Befehl so zu modifizieren, dass er nur einmal ausgeführt werden kann? :
Code: Alles auswählen
fasi$Traffic_T00_sRoad <- fasi$Traffic_T00_sRoad + 357
Code: Alles auswählen
Endergebnis <- matrix(c(Eampel1abstand, Eampel1geschwindigkeit, Eampel1beschleunigung, Eampel1ttc, Eampel2abstand, Eampel2geschwindigkeit, Eampel2beschleunigung, Eampel2ttc, Eampel3abstand, Eampel3geschwindigkeit, Eampel3beschleunigung, Eampel3ttc, Eampel4abstand, Eampel4geschwindigkeit, Eampel4beschleunigung, Eampel4ttc, Eampel5abstand, Eampel5geschwindigkeit, Eampel5beschleunigung, Eampel5ttc),ncol=1,byrow=TRUE)
Endergebnistabelle <- as.table(Endergebnis)
Dann hatte mir dieser Plot, den du mir gezeigt hast, sehr gut gefallen:
Code: Alles auswählen
par(mfrow = c(4,1), mar = c(1.7,4,1,1))
plot(ampel_1$Car_Road_sRoad, ylab = "Position [m]", type = "l", ylim = c(200,900))
lines(ampel_1$Traffic_T00_sRoad, col = "red")
plot(ampel_1$distance, type="l", ylab = "distance")
plot(ampel_1$Car_v, ylab ="Velocity", type ="l")
lines(ampel_1$Traffic_T00_LongVel, col ="red")
plot(ampel_1$ttc, ylab = "Time to collision", type = "l")
Code: Alles auswählen
daten <- read.csv("P1.csv", header = TRUE, sep = ",")
daten2 <- read.csv("P2.csv", header = TRUE, sep = ",")
...
daten24 <- read.csv("P24.csv", header = TRUE, sep = ",")
LG,
Robin