r-创建一个时间到小数函数



我找到了一个R脚本,将对其进行补充以进行分析。

然而,我注意到time_to_deimal并不是一个函数。如何为变量time_observation_started创建此函数,以计算允许将时间转换为小数的函数?示例代码:

structure(list(time_observations_started = c("14:00:00", NA, 
"16:00:00", "15:00:00", "09:00:00", "09:45:00", "12:00:00", "08:30:00", 
"08:00:00", "07:00:00", "13:00:00", "10:00:00", NA, "08:00:00", 
NA, "12:00:00", NA, "14:00:00", "14:00:00", NA, "14:35:00", NA
)), row.names = c(NA, -22L), class = c("tbl_df", "tbl", "data.frame"
), rollup = TRUE)

脚本在这里:

#clean up variables
ebd_zf_all <- ebd_zf_all %>% 

mutate(

# use species code

species_code = ebird_species(scientific_name, "code"),

# convert X to NA

observation_count = if_else(observation_count == "X", 

NA_character_, observation_count),

observation_count = as.integer(as.character(observation_count)),

# effort_distance_km to 0 for non-travelling counts

effort_distance_km = if_else(protocol_type != "Traveling", 

0, effort_distance_km),

# convert time to decimal hours since midnight

time_observations_started = time_to_decimal(time_observations_started))

您可以尝试:

data <- structure(list(time_observations_started = c("14:00:00", NA, 
"16:00:00", "15:00:00", "09:00:00", "09:45:00", "12:00:00", "08:30:00", 
"08:00:00", "07:00:00", "13:00:00", "10:00:00", NA, "08:00:00", 
NA, "12:00:00", NA, "14:00:00", "14:00:00", NA, "14:35:00", NA
)), row.names = c(NA, -22L), class = c("tbl_df", "tbl", "data.frame"
), rollup = TRUE)
as.numeric(lubridate::hms(data$time_observations_started))/86400
[1] 0.5833333        NA 0.6666667 0.6250000 0.3750000 0.4062500 0.5000000 0.3541667 0.3333333 0.2916667 0.5416667
[12] 0.4166667        NA 0.3333333        NA 0.5000000        NA 0.5833333 0.5833333        NA 0.6076389        NA

最新更新