如何使用指示器显示小时和分钟在不同列中的时间

时间:2019-07-05 02:30:59

标签: r dataframe

假设我要有3个指示器

指标,如果旅行在AM高峰开始,则为1:8:00 –9:59

指标,如果旅行在下午高峰开始,则为1:16:00 –17:59

指示器,如果旅程在中午开始,则为1:10:00 –15:59

我在不同的列中都有小时和分钟

 ARR_HR        ARR_MIN
    16              30
    10              0
    11              5

我该怎么做?

因此输出必须是

AM pick   PM pick    midday
   0        1          0
   0        0          1
   0        0          1

1 个答案:

答案 0 :(得分:1)

从列let array = str.split(", ").reduce((prev, curr, i) => { if(i%4 === 0){ prev.push([]); } prev[prev.length - 1].push(curr); return prev; }, []) 的名称来看,似乎是一天中的小时,始终是整数。您可以为此使用ARR_HR。这样做的好处是您可以继续轻松地用新的cut增加breaks

labels

如果还有时间,则需要将get_levels <- cut(df$ARR_HR, breaks = c(8, 10, 16, Inf), labels = c("AM_Pick", "Midday", "PM_Pick"), right = FALSE) df[levels(get_levels)] <- t(sapply(get_levels, function(x) as.integer(levels(get_levels) %in% x))) df # ARR_HR ARR_MIN AM_Pick Midday PM_Pick #1 16 30 0 0 1 #2 10 0 0 1 0 #3 11 5 0 1 0 ARR_HR转换为breaks的值并使用。


一种更乏味的方法是检查每个休息时间的范围。不利的一面是,您添加的休息时间会越来越长。

POSIXct