gpt4 book ai didi

r - 为什么 read.zoo 在时间可用时将索引作为日期

转载 作者:行者123 更新时间:2023-12-04 10:53:00 26 4
gpt4 key购买 nike

我试图了解我过去在输入动物园对象时遇到的困难。尽管 tz 的默认参数应该是 "",但 read.zoo 的以下两种用法给出了不同的结果,这是两个 read.zoo 调用之间的唯一区别:

Lines <- "2013-11-25 12:41:21         2 
2013-11-25 12:41:22.25 2
2013-11-25 12:41:22.75 75
2013-11-25 12:41:24.22 3
2013-11-25 12:41:25.22 1
2013-11-25 12:41:26.22 1"

library(zoo)
z <- read.zoo(text = Lines, index = 1:2)

> dput(z)
structure(c(2L, 2L, 75L, 3L, 1L, 1L), index = structure(c(16034,
16034, 16034, 16034, 16034, 16034), class = "Date"), class = "zoo")

z <- read.zoo(text = Lines, index = 1:2, tz="")
> dput(z)
structure(c(2L, 2L, 75L, 3L, 1L, 1L), index = structure(c(1385412081,
1385412082.25, 1385412082.75, 1385412084.22, 1385412085.22, 1385412086.22
), class = c("POSIXct", "POSIXt"), tzone = ""), class = "zoo")
>

最佳答案

答案(当然)在 read.zoo() 的来源中,其中有:

....
ix <- if (missing(format) || is.null(format)) {
if (missing(tz) || is.null(tz))
processFUN(ix)
else processFUN(ix, tz = tz)
}
else {
if (missing(tz) || is.null(tz))
processFUN(ix, format = format)
else processFUN(ix, format = format, tz = tz)
}
....

即使 tz 的默认值是 "" , 在您的第一种情况下 tz被认为丢失(由 missing() ),因此 processFUN(ix)用来。当您设置 tz = "" ,它不再丢失,因此您得到 processFUN(ix, tz = tz) .

不看详情 read.zoo()这可能可以通过 tz = NULL 更好地处理或 tz (无默认值)在参数中,然后在代码中,如果 tz需要设置为 ""出于某种原因,请执行以下操作:
if (missing(tz) || is.null(tz)) {
tz <- ""
}

或者,如果所需要的只是避免对两个不同调用的混淆,甚至不需要这样做?

关于r - 为什么 read.zoo 在时间可用时将索引作为日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25557118/

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