将秒转换为分钟

问题描述 投票:0回答:1

我是R新手,请帮助我理解从秒到分钟的转换。

我正在做行程时间分析,几秒钟就能得到结果,不方便描述性分析和后续可视化。不同时间段有很多计算,这里一小部分:

trip_stats <- cyclistic_df %>%
  group_by(member_casual) %>% 
  summarise(average_ride_length = round((mean(ride_length), 2),  # average ride length (total ride time / trips)
            median_ride_length = round(median(ride_length), 2),  # median ride length
            min_ride_length = round(min(ride_length), 2),  # minimum ride length
            max_ride_length = round(max(ride_length), 2))  # maximum ride length
head(trip_stats)

结论:

# A tibble: 2 × 5
  member_casual average_ride_length median_ride_length min_ride_length max_ride_length
  <chr>         <drtn>              <drtn>             <drtn>          <drtn>         
1 casual        22.72 secs          785 secs           1 secs          1922127 secs   
2 member        12.19 secs          525 secs           1 secs            89872 secs

或者这是另一个例子:

# Average ride length (ride_length):
ride_lengt_avg <- round(mean(cyclistic_df$ride_length), 2)
print(ride_lengt_avg)

结论:

Time difference of 977.28 secs

我尝试了as_hms的不同变体,格式“%M:%S”,分钟(),但不幸的是它仍然以秒为单位输出计算结果。例如,我创建了多个列,其中有一列只有小时:

# Format time as HH:MM:SS:
cyclistic_df$time <- format(as.Date(cyclistic_df$date), "%H:%M:%S")

# Create new column for time:
cyclistic_df$time <- as_hms((cyclistic_df$started_at))

# Create new column for hour:
cyclistic_df$hour <- hour(cyclistic_df$time)

结论:

0      1      2      3      4      5      6      7      8      9     10     11     12     13     14     15     16     17
  casual  32053  20813  12246   6763   4515   8707  23390  40346  55066  56190  72233  93437 109905 114531 121187 134839 153614 170534
  member  25582  15645   8736   5268   6097  26049  81660 151664 180585 120035 109540 129717 149403 147804 148800 183330 249039 297724
        
             18     19     20     21     22     23
  casual 148452 111916  81388  69348  61476  44808
  member 233303 165938 115161  88668  65505  41332

不幸的是,通过类比,我无法用分钟而不是秒来表示输出。

除以 60 也没有帮助,而且只会产生误导,因为保留了“秒”。

我将非常感谢您的帮助!

r lubridate
1个回答
1
投票

as.numeric
接受
units=
:

set.seed(42)
d <- (Sys.time()) - (Sys.time() - runif(10, 0, 99))
d
# Time differences in secs
#  [1] 90.56578 92.77045 28.32780 82.21430 63.53279 51.39048 72.92223 13.33198 65.04222 69.80140
as.numeric(d, units = "mins")
#  [1] 1.5094297 1.5461741 0.4721299 1.3702383 1.0588798 0.8565080 1.2153704 0.2221996 1.0840370 1.1633566
© www.soinside.com 2019 - 2024. All rights reserved.