我刚开始用R编写代码,目的是避免if-else语句。我正在尝试寻找一个闰年,并编写了以下代码:
leap <- function(year) {
as.Date(year)
return(
gettextf("Year %Y is a leap year", ifelse(leap.year(year),year, "Year %Y is not a leap year"))
)
}
leap(2019)我明确地想要省略起始点,因为我想找出日历中的任何闰年。
另外,请告知这是否有效。
发布于 2021-03-26 16:49:26
如果您不想指定原点,则需要向as.Date传递一个字符串。你的代码还有更多的问题。这是可行的:
library(lubridate)
leap <- function(year) {
#don't forget to assign like this:
year <- year(as.Date(paste0(year, "-01-01")))
#you need to nest your functions correctly:
sprintf(ifelse(leap_year(year),
"Year %d is a leap year",
"Year %d is not a leap year"),
year)
}
leap(c(2000:2020))
#[1] "Year 2000 is a leap year" "Year 2001 is not a leap year" "Year 2002 is not a leap year"
#[4] "Year 2003 is not a leap year" "Year 2004 is a leap year" "Year 2005 is not a leap year"
#...https://stackoverflow.com/questions/66813390
复制相似问题