gpt4 book ai didi

r - 使用 mlply 与 mapply 的不同 pmax 输出

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

我仍在努力更好地了解 mlply 的工作原理。这是我的数据集的简化版本:

days <- list(c(as.POSIXct("2010-08-29 00:00:00 EDT"), as.POSIXct("2010-08-30 00:00:00 EDT")))
day2 <- list(c(as.POSIXct("2010-07-22 00:00:00 EDT"), as.POSIXct("2010-07-23 00:00:00 EDT"), as.POSIXct("2010-07-24 00:00:00 EDT")))
days <- append(day2, days)
arrivals <- data.frame(date=as.POSIXct("2010-08-29 21:00:00 EDT"), size=72)
arrivals <- rbind(arrivals, c("2010-07-22 17:30:00 EDT",84))

使用 mapply 和 pmax 来选择天数和到达时间之间的最大值,我得到以下信息:
starting <- mapply(function(x,y){pmax(x,y)},days,arrivals$date)
starting[[1]]
"2010-08-29 21:00:00 EDT" "2010-08-29 21:00:00 EDT" "2010-08-29 21:00:00 EDT"

我确信使用 mlply 的下一个版本不是等价的,显然是我的错误,但是,我不太确定为什么输出不同。
starts <- mlply( cbind(arrivals$date,days), function(date,days){pmax(date,days)})
as.POSIXct(starts[[1]], origin='1970-1-1')
[1] "2010-08-30 02:00:00 EDT" "2010-08-30 02:00:00 EDT" "2010-08-30 02:00:00 EDT"

理想情况下,我正在研究如何使用 mlply 重写 mapply 语句。
提前致谢,
--JT

最佳答案

比较

> starts[[1]]
[1] 1283112000 1283112000 1283112000
> as.numeric(starting[[1]])
[1] 1283112000 1283112000 1283112000
>

POSIX 对 UTC/GMT 的引用。在您的示例中,您似乎提前了 5 小时。这是内部的输出问题,它们似乎是相同的时间。进一步评论是困难的。这将取决于您正在运行的操作系统。它可能会受到您的语言环境设置等的影响。

还有 as.POSIXct gives an unexpected timezone表明 as.POSIXct.date 可能存在问题但我不确定这是否仍然是一个问题。

关于r - 使用 mlply 与 mapply 的不同 pmax 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11528324/

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