fmt_seconds <- function(time_in_sec, units = "auto", round_digits = 4) {
# Given seconds, appropriately format time (seconds, miinutes, hours, ...)
# 'units' parameter can be manually specified as one of 'seconds',
# 'minutes', 'hours' or 'days', or the default is 'auto' whereby the units
# will be automatically calcuated according to the size of the number
# Returns a list. Example:
#
# elapsed_time = format_time_diff(50)
# elapsed_time$value # Numeric value of time difference
# elapsed_time$unit # Unit of time difference (seconds, minutes, ...)
#
# Arguments:
# time_in_sec {numeric} -- time in seconds to format
#
# Keyword Arguments:
# units {char} -- desired output format, one of "seconds", "minutes", "hours",
# "days" or "auto" (default: "auto")
# round_digits {numeric} -- number of digits to round $value to
#
# Returns:
# list -- $value {numeric}, $units {char}
#
if(units == "auto") {
if(time_in_sec < 60) {
time_diff = round(time_in_sec, round_digits)
if(time_diff == 0) time_diff = round(time_in_sec, round_digits)
time_measure = "seconds"
} else if(time_in_sec >= 60 && time_in_sec < 3600) {
time_diff = round(time_in_sec/60, round_digits)
if(time_diff == 0) time_diff = round(time_in_sec/60, round_digits)
time_measure = "minutes"
} else if(time_in_sec >= 3600 && time_in_sec < 86400) {
time_diff = round(time_in_sec/3600, round_digits)
if(time_diff == 0) time_diff = round(time_in_sec/3600, round_digits)
time_measure = "hours"
} else {
time_diff = round(time_in_sec/86400, round_digits)
if(time_diff == 0) time_diff = round(time_in_sec/86400, round_digits)
time_measure = "days"
}
} else if(units %in% c("seconds", "minutes", "hours", "days")) {
time_measure = units
if(units == "seconds") {
time_diff = round(time_in_sec, round_digits)
} else if(units == "minutes") {
time_diff = round(time_in_sec/60, round_digits)
} else if(units == "hours") {
time_diff = round(time_in_sec/3600, round_digits)
} else { # Days
time_diff = round(time_in_sec/86400, round_digits)
}
} else {
stop("Invalid 'units' paramter. Must be one of 'auto', 'seconds', 'minutes', 'hours' or 'days'")
}
return(list(value = time_diff, units = time_measure))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.