gpt4 book ai didi

r - 在有序的日期列表中填写缺少的年份

转载 作者:行者123 更新时间:2023-12-04 19:05:38 24 4
gpt4 key购买 nike

我从网上收集了一些时间序列数据,我得到的时间戳如下所示。

24 Jun 
21 Mar
20 Jan
10 Dec
20 Jun
20 Jan
10 Dec
...

有趣的是,数据中缺少年份,但是,所有记录都是有序的,您可以从记录中推断年份并填写缺少的数据。所以插补后的数据应该是这样的:
24 Jun 2014
21 Mar 2014
20 Jan 2014
10 Dec 2013
20 Jun 2013
20 Jan 2013
10 Dec 2012
...

在撩起袖子开始写 for 之前循环 nested逻辑.. 有没有一种简单的方法可以在 R 中开箱即用来估算丢失的年份。

非常感谢您的任何建议!

最佳答案

这是一个想法

## Make data easily reproducible
df <- data.frame(day=c(24, 21, 20, 10, 20, 20, 10),
month = c("Jun", "Mar", "Jan", "Dec", "Jun", "Jan", "Dec"))


## Convert each month-day combo to its corresponding "julian date"
datestring <- paste("2012", match(df[[2]], month.abb), df[[1]], sep = "-")
date <- strptime(datestring, format = "%Y-%m-%d")
julian <- as.integer(strftime(date, format = "%j"))

## Transitions between years occur wherever julian date increases between
## two observations
df$year <- 2014 - cumsum(diff(c(julian[1], julian))>0)

## Check that it worked
df
# day month year
# 1 24 Jun 2014
# 2 21 Mar 2014
# 3 20 Jan 2014
# 4 10 Dec 2013
# 5 20 Jun 2013
# 6 20 Jan 2013
# 7 10 Dec 2012

关于r - 在有序的日期列表中填写缺少的年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25632652/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com