r - 将时间输入打印为 r 中的单词
问题描述
我想写一些代码,它需要一段时间并输出那个时间的话。
time <- c("5:00", "5:01", "5:10", "5:15", "5:30", "5:40", "5:45", "5:47", "5:28")
words <- c("five o`clock", "one minute past five",
"ten minutes past five", "quarter past five",
"half past five", "twenty minutes to six", "quarter to six",
"thirteen minutes to six", "twenty eight minutes past five")
df <- cbind(time, words)
df
那就是1 <= 30
几分钟使用“过去”这个词并30 > "minutes"
使用到。
我想以任何时间格式以文字形式打印时间,例如:
time words
[1,] "5:00" "five o`clock"
[2,] "5:01" "one minute past five"
[3,] "5:10" "ten minutes past five"
[4,] "5:15" "quarter past five"
[5,] "5:30" "half past five"
[6,] "5:40" "twenty minutes to six"
[7,] "5:45" "quarter to six"
[8,] "5:47" "thirteen minutes to six"
[9,] "5:28" "twenty eight minutes past five"
解决方案
time <- c("5:00", "17:45","10:05:00","5:10 pm", "5:01", "5:10:20 AM", "23:45:00",
"5:10", "5:15", "5:30", "5:40", "5:45", "5:47", "5:28", "00:10:20")
library(dplyr)
library(lubridate)
library(qdap)
time %>% data.frame(time=.) %>%
mutate(datetime = parse_date_time(time, c("HMS", "HM","IMOp", "IMSOp")),
h = as.double(hour(datetime)),
m = minute(datetime),
h = case_when(h==0 ~ 12,
h > 12 ~ h -12,
TRUE ~ h)) %>%
mutate(TIME_chr =
case_when(m == 0 ~ paste(replace_number(h), "o`clock"),
m == 15 ~ paste("quarter past", replace_number(h)),
m == 30 ~ paste("half past", replace_number(h)),
m == 45 ~ paste("quarter to", replace_number(h + 1)),
m > 30 ~ paste(replace_number(60-m), "minutes to", replace_number(h+1)),
TRUE ~ paste(replace_number(m), "minutes past", replace_number(h)))) %>%
select(time, TIME_chr)
#> time TIME_chr
#> 1 5:00 five o`clock
#> 2 17:45 quarter to six
#> 3 10:05:00 five minutes past ten
#> 4 5:10 pm ten minutes past five
#> 5 5:01 one minutes past five
#> 6 5:10:20 AM ten minutes past five
#> 7 23:45:00 quarter to twelve
#> 8 5:10 ten minutes past five
#> 9 5:15 quarter past five
#> 10 5:30 half past five
#> 11 5:40 twenty minutes to six
#> 12 5:45 quarter to six
#> 13 5:47 thirteen minutes to six
#> 14 5:28 twenty eight minutes past five
#> 15 00:10:20 ten minutes past twelve
由reprex 包(v0.3.0)于 2019 年 9 月 12 日创建
推荐阅读
- apache-kafka - 如何编码以将数据永久存储在 Kafka 中?
- javascript - (单击)操作在 [innerHTML] Angular 内部不起作用
- java - 错误:线程“主”java.lang.ArrayIndexOutOfBoundsException 中的异常:10
- go - sync.Pool 比使用 channel 慢很多,那我们为什么要使用 sync.Pool 呢?
- excel - 如何在excel公式中实现以下
- plsql - 联合所有运算符的混乱
- apache - 使用 htaccess 重写规则
- php - ajax响应后有url重定向
- swift - 转换为协议时未调用协议扩展方法
- android - 当应用程序在 Nougat(版本 25)事件中从后台清除时,服务未运行,尽管我使用了 startforegound 通知