【发布时间】:2020-05-10 02:23:38
【问题描述】:
我正在研究一个简单的 R 函数作为教科书的练习。我已经编写了执行正确操作的函数,但我不明白为什么我的会抛出语法错误。我有一个可以正常工作的解决方案,而且两者几乎相同,所以我很好奇我的代码有什么问题?
这就是问题所要求的:
写一个问候函数,说“早上好”,“下午好”, 或“晚上好”,具体取决于一天中的时间。 (暗示: 使用默认为 lubridate::now() 的时间参数
我的代码:
salutations = function(now()){
hr = hour(now())
if(4<= hr <= 12){
print("Good Morning")
} else if (13 <= hr <= 19){
print("Good Afternoon")
} else {
print("Good Evening")
}
}
解决方案代码:
greet <- function(time = lubridate::now()) {
hr <- lubridate::hour(time)
# I don't know what to do about times after midnight,
# are they evening or morning?
if (hr < 12) {
print("good morning")
} else if (hr < 17) {
print("good afternoon")
} else {
print("good evening")
}
}
需要注意的一些事项:我安装了 lubridate 软件包,所以即使我省略了 lubridate:: 部分,我觉得它仍然可以工作。我有与解决方案相同数量的大括号和标签。那么有什么问题呢?
【问题讨论】: