R 中的自定义函数
Custom functions in R
我正在尝试编写一个问候功能,它接受两个参数,一个时间和一个名称,并根据一天中的时间说“早上好”、“下午好”或“晚上好”。
我还想使用 lubridate::now()
作为时间参数的默认值。但不确定这是正确的做法还是有更好的选择?
greet <- function(time = lubridate::now(), name) {
hour <- parse_number(str_sub(time, 12, 13))
if (hour < 12) {
cat("good morning", name)
} else if (hour < 17) {
cat("good afternoon", name)
} else {
cat("good evening", name)
}
}
#sanity check
greet(name = "User 1")
#> [1] "good afternoon User 1"
greet(ymd_h("2021-03-31 05"), "User 2")
#> [1] "good morning User 2"
greet(ymd_h("2021-03-31 13"), "User 3")
#> [1] "good afternoon User 3"
greet(ymd_h("2021-03-31 20"), "User 4")
#> [1] "good evening User 4"
greet <- function(time = lubridate::now(), name) {
hour <- parse_number(str_sub(time, 12, 13))
if(hour < 0 || hour > 23) {
stop("Please define a correct time")
}
if (hour < 12) {
cat("good morning", name)
} else if (hour < 17) {
cat("good afternoon", name)
} else {
cat("good evening", name)
}
}
greet("2020-01-01 25:45:32", "User 5")
greet("2020-01-01 -1:45:32", "User 5")
我正在尝试编写一个问候功能,它接受两个参数,一个时间和一个名称,并根据一天中的时间说“早上好”、“下午好”或“晚上好”。
我还想使用 lubridate::now()
作为时间参数的默认值。但不确定这是正确的做法还是有更好的选择?
greet <- function(time = lubridate::now(), name) {
hour <- parse_number(str_sub(time, 12, 13))
if (hour < 12) {
cat("good morning", name)
} else if (hour < 17) {
cat("good afternoon", name)
} else {
cat("good evening", name)
}
}
#sanity check
greet(name = "User 1")
#> [1] "good afternoon User 1"
greet(ymd_h("2021-03-31 05"), "User 2")
#> [1] "good morning User 2"
greet(ymd_h("2021-03-31 13"), "User 3")
#> [1] "good afternoon User 3"
greet(ymd_h("2021-03-31 20"), "User 4")
#> [1] "good evening User 4"
greet <- function(time = lubridate::now(), name) {
hour <- parse_number(str_sub(time, 12, 13))
if(hour < 0 || hour > 23) {
stop("Please define a correct time")
}
if (hour < 12) {
cat("good morning", name)
} else if (hour < 17) {
cat("good afternoon", name)
} else {
cat("good evening", name)
}
}
greet("2020-01-01 25:45:32", "User 5")
greet("2020-01-01 -1:45:32", "User 5")