gpt4 book ai didi

r - 将 excel DateTime 序列号转换为 R DateTime

转载 作者:行者123 更新时间:2023-12-03 08:35:44 25 4
gpt4 key购买 nike

当 excel 表作为 xy 点导入 ArcGIS 时,我继续丢失每个点的正确日期时间戳。因此,我格式化了 DateTime 序列号,创建了 .shp,并使用 readOGR() 将 .shp 读入 R。

进入 R 后,我可以使用 as.Date() 转换为正确的日期和 origin = "1899-12-30"争论,但时间被排除在外。虽然我看过带有唯一 Date 的示例,但我还没有看过带有 DateTime 的示例。我一直在用as.Date()以及 as.POSIXct()但是这个看似简单的任务却有点令人沮丧,因此这篇文章......

我创建了一个示例数据集,其中包含 10 行正确的 DateTime 格式以及 excel 序列号。

*感谢 Richard 和 thelatemail 对早期障碍的敏锐观察。我已经更正了数据并在此处重新发布。

这是我的示例数据

helpData <- structure(list(ID = 1:10, DateTime = structure(c(9L, 1L, 2L, 
3L, 4L, 5L, 6L, 7L, 8L, 8L), .Label = c("3/11/2011 7:55", "3/13/2011 7:55",
"3/14/2011 0:00", "3/14/2011 10:04", "3/14/2011 7:55", "3/15/2011 19:55",
"3/17/2011 7:55", "3/18/2011 4:04", "3/4/2011 6:00"), class = "factor"),
ExcelNum = c(40606.25, 40613.32986, 40615.32986, 40616, 40616.41944,
40616.32986, 40617.82986, 40619.32986, 40620.16944, 40620.16944
)), .Names = c("ID", "DateTime", "ExcelNum"), class = "data.frame", row.names = c(NA,
-10L))

head(helpData)

日期时间是 GMT。时间是 24 小时制(即不是 AM/PM)。我正在使用 Windows 7,拥有最新的 R 和 ArcGIS 10。

下面的代码获得了正确的日期,但仍然缺少时间。
newDateTime <- as.Date(helpData[ , "ExcelNum"], origin = "1899-12-30")
head(newDateTime)

提前致谢!

最佳答案

你的号码正在计算天数。转换为秒,你就完成了(少了一个舍入误差)

helpData[["ExcelDate"]] <- 
as.POSIXct(helpData[["ExcelNum"]] * (60*60*24)
, origin="1899-12-30"
, tz="GMT")


# ID DateTime ExcelNum ExcelDate
# 1 1 3/4/2011 6:00 40606.25 2011-03-04 06:00:00
# 2 2 3/11/2011 7:55 40613.33 2011-03-11 07:54:59
# 3 3 3/13/2011 7:55 40615.33 2011-03-13 07:54:59
# 4 4 3/14/2011 0:00 40616.00 2011-03-14 00:00:00
# 5 5 3/14/2011 10:04 40616.42 2011-03-14 10:03:59
# 6 6 3/14/2011 7:55 40616.33 2011-03-14 07:54:59
# 7 7 3/15/2011 19:55 40617.83 2011-03-15 19:54:59
# 8 8 3/17/2011 7:55 40619.33 2011-03-17 07:54:59
# 9 9 3/18/2011 4:04 40620.17 2011-03-18 04:03:59
# 10 10 3/18/2011 4:04 40620.17 2011-03-18 04:03:59

关于r - 将 excel DateTime 序列号转换为 R DateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19172632/

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