gpt4 book ai didi

r - 在 R 中转换为一年中的日期和时间

转载 作者:行者123 更新时间:2023-12-04 16:29:22 24 4
gpt4 key购买 nike

我有超过3年的数据。对于每一年,我想找到对应于那一年的 1 月 1 日的那一天。例如:

> x <- c('5/5/2007','12/31/2007','1/2/2008')
> #Convert to day of year (julian date) –
> strptime(x,"%m/%d/%Y")$yday+1
[1] 125 365 2

我想知道如何做同样的事情,但随着时间的推移。但我仍然得到了一天而不是时间。谁能建议用日期和时间找到朱利安日期的更好方法是什么?
> x1 <- c('5/5/2007 02:00','12/31/2007 05:58','1/2/2008 16:25')
> #Convert to day of year (julian date) –
> strptime(x1,"%m/%d/%Y %H:%M")$yday+1
[1] 125 365 2

而不是这个结果,我想要十进制天的输出。例如,第一个例子是 125.0833333等等。

非常感谢。

最佳答案

您也可以使用 POSIXctPOSIXlt表示连同 firstof函数来自 xts .

x1 <- c("5/5/2007 02:00", "12/31/2007 05:58", "1/2/2008 16:25")
x1
## [1] "5/5/2007 02:00" "12/31/2007 05:58" "1/2/2008 16:25"


y <- as.POSIXlt(x1, format = "%m/%d/%Y %H:%M")

result <- mapply(julian, x = as.POSIXct(y), origin = firstof(y$year + 1900))

result
## [1] 124.083333 364.248611 1.684028

如果你不想使用 xts 那么也许像这样
result <- mapply(julian, 
x = as.POSIXct(x1, format = "%m/%d/%Y %H:%M", tz = "GMT"),
origin = as.Date(paste0(gsub(".*([0-9]{4}).*", "\\1", x1),
"-01-01"),
tz = "GMT"))

result
## [1] 124.083333 364.248611 1.684028

关于r - 在 R 中转换为一年中的日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15490614/

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