Ich habe wie diese gesetzten Reisetransaktionsdaten (über 560.000 Fahrten): Datenrahmen 1Wie wird das wöchentliche Profil mit R bereitgestellt?
ID START TIME DATE ORIGIN DESTINATION DAY
1005 9.10 2012-01-02 A B Monday
1005 18.15 2012-01-02 B A Monday
1005 9.05 2012-01-08 A B Sunday
1005 17.05 2012-01-08 B A Sunday
1010 8.00 2012-01-09 A C Monday
1010 12.00 2012-01-09 C A Monday
1013 13.15 2012-01-10 D E Tuesday
1013 15.30 2012-01-10 E G Tuesday
1013 9.06 2012-01-12 D E Thursday
... ... 2012-..-.. . . ...
und ID-Index wie diese (etwa 1986 IDs): Dataframe 2
ID
1005
1010
1013
1015
1030
1034
1036
1031
1040
...
Ich möchten ein erstellen Wochenreiseprofil basierend auf diesen beiden Datenrahmen. Ich bin nicht sicher, ob ich richtig, aber ich versuchte, diese Codes:
weekday = c("Sunday", "Monday","Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
br = seq(0,23,by=1)
ranges = paste(head(br,-1), br[-1], sep="_")
for (i in dataframe2$ID) {
for (n in weekday){
x= filter(dataframe1,dataframe1$ID %in% i & dataframe1$DAY %in% n)
freq = hist(as.numeric(x), br, include.lowest=TRUE, plot=FALSE)
df = as.data.frame(t(data.frame(frequency = freq$counts)))
df$i = i
df$n = n
colnames(df) = c(as.character(ranges),"ID","Day")
write.table(head(df),file="testdata1.csv", append=TRUE,sep=",",col.names=FALSE,row.names=FALSE)
}
}
ich mit einer csv-Tabelle am Ende will ihre wöchentliche Reise Frequenz enthält. Ich möchte auch fragen, ob es einen einfachen Weg gibt, diese Aufgabe zu vereinfachen.
ID 0_1 1_2 2_3 3_4 4_5 5_6 6_7 7_8 8_9 9_10 10_11 11_12 12_13 13_14 14_15 15_16 16_17 17_18 18_19 19_20 20_21 21_22 22_23 Day
1005 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 Sunday
1005 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 Monday
1005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Tuesday
1005 Wednesday
1005 Thursday
1005 Friday
1005 Saturday
1010 Sunday
1010
1010
1010
1010
1010
1010
am Ende möchte ich ein Diagramm wie folgt erzeugen: enter image description here
es ist besser, wenn Sie 'Ihre Daten dput' –