在這個問題上更小: Sum if the date difference is smaller than a value 現在我必須計算出以前12H感謝@Davis沃恩在發生事件數的可能性:總和如果時間差大於按id的值和類型
df <- tribble(
~fechayhora, ~id, ~tipo,
"2017-03-17 08:03:00", "A", "APF",
"2017-05-17 10:34:00", "A", "APF",
"2017-05-17 12:52:00", "A", "APF",
"2017-05-17 08:52:00", "A", "APP",
"2017-05-17 10:52:00", "A", "APP",
"2017-05-17 10:46:00", "B", "APP",
"2017-05-17 14:23:00", "B", "APP",
"2017-05-17 17:29:00", "B", "APF"
)
df <- df %>%
mutate(fechayhora = as.POSIXct(fechayhora),
minus_12 = fechayhora - hours(12))
df <- df %>% mutate(
number_of_APF_12h = map2_dbl(.x = fechayhora,
.y = minus_12,
.f = ~sum(between(df$fechayhora, .y, .x)) -
1))
然後,我試圖做同樣的事情,但通過「id」和「tipo」(類型)進行分組。我tryed與數據表和數據幀,沒有贏得成功:
df=df[,number_of_failures_12h = map2_dbl(.x = fechayhora,
.y = minus_12,
.f = ~sum(between(df$fechayhora, .y, .x)) -
1)),by=.(tipo,id)]
或
df <- df %>%
group_by(id,tipo)
%>% mutate(
number_of_failure = map2_dbl(.x = fechayhora,
.y = minus_12,
.f = ~sum(between(df$fechayhora, .y, .x)) -
1)) %>%
ungroup()
結果預計:
fechayhora id tipo n_APP n_APF
"2017-03-17 08:03:00", "A", "APF", 0 0
"2017-05-17 10:34:00", "A", "APF", 0 1
"2017-05-17 12:52:00", "A", "APF", 0 2
"2017-05-17 08:52:00", "A", "APP", 0 2
"2017-05-17 10:52:00", "A", "APP", 1 2
"2017-05-17 10:46:00", "B", "APP", 0 0
"2017-05-17 14:23:00", "B", "APP", 1 0
"2017-05-17 17:29:00", "B", "APF" 0 0
謝謝!!
對不起,有很多的猜測 – akrun
如果你想告訴我什麼是不清楚謝謝你 – Martu
你是如何得到預期的輸出與dplyr,因爲我無法 – akrun