У меня есть фрейм данных, как показано ниже (df).Как найти процентили, а затем группу в R
day area hour time count
___ ____ _____ ___ ____
1 1 0 1 10
1 1 0 2 12
1 1 0 3 8
1 1 0 4 12
1 1 0 5 15
1 1 0 6 18
1 1 1 1 10
1 1 1 2 12
1 1 1 3 8
1 1 1 4 12
1 1 1 5 15
1 1 1 6 18
1 1 1 7 12
1 1 1 8 15
1 1 1 9 18
1 1 2 1 10
1 1 2 2 18
1 1 2 3 19
.....
2 1 0 1 18
2 1 0 2 12
2 1 0 3 18
2 1 0 4 12
2 1 1 1 8
2 1 1 2 12
2 1 1 3 18
2 1 1 4 10
2 1 1 5 15
2 1 1 6 18
2 1 1 7 12
2 1 1 8 15
2 1 1 9 18
2 1 2 1 10
2 1 2 2 18
2 1 2 3 19
2 1 2 4 9
2 1 2 5 18
2 1 2 6 9
.....
30 99 23 1 9
30 99 23 2 8
30 99 23 3 9
30 99 23 4 19
30 99 23 5 18
30 99 23 6 9
30 99 23 7 19
30 99 23 8 8
30 99 23 9 19
Здесь у меня есть данные за 30 дней в течение 87 областей (от 1 до 82, а затем у меня 90,93,95,97,99) и 24 часов (от 0 до 23) на day.So Данные, речь идет о времени, затраченном на пересечение территории и сколько ее пересекли.
Например:
day area hour time count
___ ____ _____ ___ ____
1 1 0 1 10
1 1 0 2 12
1 1 0 3 8
1 1 0 4 12
1 1 0 5 15
1 1 0 6 18
Это дает мне в 1-й день на час 0 время, необходимое, чтобы пересечь этот район 1
time count cumulative_count
___ ___ ________________
1 10 10
2 12 22
3 8 30
4 12 42
5 15 57
6 18 75
10 vehicles crossed the area in 1 minute.
12 vehicles crossed the area in 2 minutes.
8 vehicles crossed the area in 3 minutes.
12 vehicles crossed the area in 4 minutes.
15 vehicles crossed the area in 5 minutes.
18 vehicles crossed the area in 6 minutes.
От этого я хочу, чтобы подсчитать, сколько времени потребовалось для 80% транспортных средств, пересекающих площадь 1 в день 1 час 0. Совокупные транспортные средства = (10 + 12 + 8 + 12 + 15 + 18) = 75. Так 80% 75 составляет 60. Так что время, затраченное на 80% транспортных средств (80% из 75, что составляет 60), чтобы пройти площадь 1 в день 1 час 0 будет составлять от 5 до 6 (будет ближе к 5). Таким образом, результат будет как:
day area hour time_taken_for_80%vehicles_to_pass
___ ____ ____ ___________________________________
1 1 0 5.33(approximately)
1 1 1 7.30
1 1 2 2.16
....
30 1 23 3.13
1 2 0 ---
1 2 1 ---
1 2 2 ---
1 2 3 ---
.......
30 99 21 ---
30 99 22 ---
30 99 23 ---
I know to I have to take quantile and then group by the area and day and hour.So I tried with
library(dplyr)
grp <- group_by(df, day,area,hour,quantile(df$count,0.8))
Но это не work.Any помощь ценится
да это почти close.But было бы лучше, если я могу получить 5. ** вместо 6, потому что минуту большая шкала для автомобилей, чтобы пройти. В любом случае это хорошо –
Добавил (а) другое решение – Wietze314
@ Wietze314 Есть ли шанс использовать процентиль –