r - 查找特定日期属于哪个季节

标签 r date

我有一个日期向量,对于每个条目,我想指定一个季节。例如,如果日期在 21.12 之间。 21.3.,我想说那是冬天。到目前为止,我已经尝试了以下代码,但我无法使其更通用,无论年份如何

my.dates <- as.Date("2011-12-01", format = "%Y-%m-%d") + 0:60
low.date <- as.Date("2011-12-15", format = "%Y-%m-%d")
high.date <- as.Date("2012-01-15", format = "%Y-%m-%d")

my.dates[my.dates <= high.date & my.dates >= low.date] 
 [1] "2011-12-15" "2011-12-16" "2011-12-17" "2011-12-18" "2011-12-19" "2011-12-20" "2011-12-21" "2011-12-22" "2011-12-23" "2011-12-24" "2011-12-25"
[12] "2011-12-26" "2011-12-27" "2011-12-28" "2011-12-29" "2011-12-30" "2011-12-31" "2012-01-01" "2012-01-02" "2012-01-03" "2012-01-04" "2012-01-05"
[23] "2012-01-06" "2012-01-07" "2012-01-08" "2012-01-09" "2012-01-10" "2012-01-11" "2012-01-12" "2012-01-13" "2012-01-14" "2012-01-15"

我尝试过格式化不带年份的日期,但它不起作用。

ld <- as.Date("12-15", format = "%m-%d")
hd <- as.Date("01-15", format = "%m-%d")
my.dates[my.dates <= hd & my.dates >= ld] 

最佳答案

使用这样的东西怎么样:

getSeason <- function(DATES) {
    WS <- as.Date("2012-12-15", format = "%Y-%m-%d") # Winter Solstice
    SE <- as.Date("2012-3-15",  format = "%Y-%m-%d") # Spring Equinox
    SS <- as.Date("2012-6-15",  format = "%Y-%m-%d") # Summer Solstice
    FE <- as.Date("2012-9-15",  format = "%Y-%m-%d") # Fall Equinox

    # Convert dates from any year to 2012 dates
    d <- as.Date(strftime(DATES, format="2012-%m-%d"))

    ifelse (d >= WS | d < SE, "Winter",
      ifelse (d >= SE & d < SS, "Spring",
        ifelse (d >= SS & d < FE, "Summer", "Fall")))
}

my.dates <- as.Date("2011-12-01", format = "%Y-%m-%d") + 0:60
head(getSeason(my.dates), 24)
#  [1] "Fall"   "Fall"   "Fall"   "Fall"   "Fall"   "Fall"   "Fall"  
#  [8] "Fall"   "Fall"   "Fall"   "Fall"   "Fall"   "Fall"   "Fall"  
# [15] "Winter" "Winter" "Winter" "Winter" "Winter" "Winter"

注意一点:2012 年是转换所有日期的好年份;由于今年是闰年,因此数据集中的任何 2 月 29 日都将顺利处理。

关于r - 查找特定日期属于哪个季节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9500114/

相关文章:

JavaScript - 使用当前时区格式化日期

c# - 为什么我的 IEnumerable 日期不包含我的日期

javascript - 比较美国日期标准 mm/dd/yyyy 中两个日期之间的差异

javascript - 浏览器解析日期的方式不同

windows - R for windows : onscreen vs pdf() 中的 TTF/OTF 字体选择

java - SimpleDateFormat - 格式 - 九月 - JDK16

r - 使用包 httr 从 Web API 获取数据

R - 切割一个向量

R:If 语句包含 is.null 作为通过 OR 连接的条件之一

R - 在 grep 中暗示 x 对象