在 R 中,为什么 POSIXct 和 POSIXlt 之间存在一毫秒的差异?

2023-11-25

这个片段

options(digits.secs=3)
s<-"12:00:00.188"
fmt<-"%I:%M:%OS"
print(strptime(s,fmt))
print(as.POSIXct(strptime(s,fmt)))

给出这个文本输出:

[1] "2017-09-12 00:00:00.188 CEST"
[1] "2017-09-12 00:00:00.187 CEST"

虽然我希望上面的结果是一样的。我缺少什么?

我的会话信息:

print(sessionInfo())

gives:

R version 3.4.0 (2017-04-21)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

Matrix products: default

locale:
[1] LC_COLLATE=Italian_Italy.1252  LC_CTYPE=Italian_Italy.1252    LC_MONETARY=Italian_Italy.1252 LC_NUMERIC=C                  
[5] LC_TIME=Italian_Italy.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] compiler_3.4.0 tools_3.4.0   

Linux 中的结果相同:

R version 3.3.3 (2017-03-06)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Debian GNU/Linux 9 (stretch)

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8     LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                  LC_ADDRESS=C               LC_TELEPHONE=C             LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] tools_3.3.3

编辑(之后Roland's comment)

也许我错了,但在我看来 0.002 不能用浮点表示,仍然使用 0.002 POSIXct 和 POSIXlt 之间没有区别:

options(digits.secs=3)
s<-"12:00:00.002"
fmt<-"%I:%M:%OS"
print(strptime(s,fmt))
print(as.POSIXct(strptime(s,fmt)))

gives:

[1] "2017-09-12 00:00:00.002 CEST"
[1] "2017-09-12 00:00:00.002 CEST"

您可以在日期时间文档中阅读有关此内容的内容:https://stat.ethz.ch/R-manual/R-devel/library/base/html/DateTimeClasses.html

尤其:

类“POSIXct”表示自 1970 年初(UTC 时区)以来的(带符号)秒数,作为数值向量。

strptime和另一个班级POSIXlt以不同的方式存储日期时间。

因此亚秒级精度存在问题:

亚秒级精度

类“POSIXct”和“POSIXlt”能够表示秒的小数部分。 (两种形式之间的分数转换可能不准确,但精度优于微秒。)

所以,你会看到POSIXlt and strptime准确地打印这些:

strptime(s,fmt)
as.POSIXlt(strptime(s,fmt), format = "%Y-%m-%d %H:%M:%OS")

但是因为POSIXct进行计算以将日期表示为数字,由于浮点精度、闰秒等原因,它可能会不准确。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 R 中,为什么 POSIXct 和 POSIXlt 之间存在一毫秒的差异? 的相关文章

  • ggplot 中的错误问题:“grid.Call(”L_textBounds“, as.graphicsAnnot(x$label), x$x, x$y, … 中的错误”[重复]

    这个问题在这里已经有答案了 我试图在 ggplot 中制作一个条形图 其中我通过强制其中一些标签为长度为零的字符串 即 来指定要显示的标签 但是 我收到错误 Error in grid Call L textBounds as graphi
  • 查找数据帧列表中同一列中的所有重复值并将其转换为 NULL

    我有一个清单BELGIAN COAST list包含数百个数据帧 df1 df2 15 列 X 1000 行 每个数据帧的最后一列称为Chemicals并包含一些字符 例如Sulfate or Ammonia 但是这一列有很多行Chemic
  • 如何在 R 中为传单中的数值变量设置不对称颜色渐变

    我想让传单调色板以零为中心 红白绿发散 我已经尝试过中所说的这个帖子 https stackoverflow com questions 29262824 r center color palette on 0 当我尝试手动创建颜色时 我得
  • R 中的发散积分可在 Wolfram 中求解

    我知道我以前问过同样的问题 但由于我是新来的 这个问题问得不好而且不可重现 因此我在这里尝试做得更好 如果我只编辑旧的 可能没有人会读它 我有一个想要积分的二重积分 ff lt function g t exp 16 g exp 8 t t
  • 将函数应用于 3d 数组的每一层,返回一个数组

    假设您有一个包含行 列和层的 3 维数组 A lt array 1 27 c 3 3 3 想象你有一个函数 它接受一个矩阵作为输入并返回一个矩阵作为输出 就像t 如何将该函数应用于数组的每一层 返回与第一层大小相同的另一个数组 我觉得我应该
  • 使用 R 进行项目组织 [重复]

    这个问题在这里已经有答案了 可能的重复 统计分析和报告撰写的工作流程 https stackoverflow com questions 1429907 workflow for statistical analysis and repor
  • 使用outer代替expand.grid

    我正在寻找尽可能快的速度并留在基地做该做的事expand grid做 我用过outer为过去类似的目的创建一个向量 像这样的东西 v lt outer letters LETTERS paste0 unlist v lower tri v
  • 如何计算嵌套函数中的粘合表达式?

    我正在尝试嵌套一个函数 该函数将两个字符串粘合在一起 该函数使用组合字符串来命名数据帧的列 然而 问题似乎是粘合表达式没有足够早地评估为字符串 我可以 并且应该 强制在将表达式作为参数传递给另一个函数之前对其进行求值吗 library ti
  • 如何在R中同时对三个字段进行网络分析

    如何在 R 中同时对三个字段进行网络分析 下面是示例数据以及desired output在最后一栏中 df lt data frame stringsAsFactors FALSE id 1 c ABC ABC BCD CDE DEF EF
  • 16 位以上整数的计算

    我有两个大整数 两者都超过 16 位 确切地说是 20 位 而且我知道由于双精度浮点运算 我在使用这些数字进行计算甚至将它们存储在变量中 独立于编程语言 时受到限制 不过 我想也许gmp图书馆应该处理它们 但不幸的是它没有 可以计算更大的整
  • 使用predictNLS围绕R中的拟合值创建置信区间?

    我想使用 R 中 propogate 包中的 PredictNLS 围绕一大组拟合值构建置信区间 作为示例 我将使用它们在函数描述中引用的数据集 https rdrr io github anspiess propagate man pre
  • R 中的 Websocket

    我设法在 R 中建立到 Mtgox websocket 的连接 规格如下 url https socketio mtgox com mtgox Currency USD https socketio mtgox com mtgox Curr
  • 如何从shiny中将数据下载到多张纸上?

    我们如何将数据从 Shiny 下载到多个工作表并命名每个工作表 例如下面 ginberg将mtcars数据保存在sheet1中 我们可以将头部 mtcars 保存在sheet2中吗 另外 我们可以对这些工作表进行不同的命名吗 例如sheet
  • 如何修改秤包生成的标签?

    所以我正在制作金字塔可视化 我在用着scale y continuous labels scales label number si accuracy 0 1 来生产标签 但是 我想去掉图表女性部分的负号 我认为保留 SI 后缀但删除负号的
  • 捕获段错误、内存未映射错误

    我试图在 R 中找到 1347 x 209974 矩阵的列的相关性 每次我这样做 使用一个简单的命令cor matrix 我收到消息 caught segfault address 0xffffffffd058abf8 cause memo
  • 提取部分字符串值,创建新的列名称,并使数据框宽

    我想提取字符串列的最后一部分 始终用方括号括起来 将它们作为新列的名称 然后将数据从长调整为宽 并用这些值填充新列 例如 如果我有这个数据框 whatihave lt data frame v1 c abc effort def effor
  • 如何匹配R中列之间的多个对应值

    我有一个结构如下的数据框 ID Value1 Value2 1 a d g f 12 14 15 9 2 b c e 5 18 20 3 h i j 6 7 25 所以我有一个 ID 和两个值 对于值 1 有多个对应于值 2 的选项 我想最
  • 在 R 中使用 nls 重新创建研究

    我正在学习如何在 R 中使用 nls 函数 但遇到了一些问题 我现在只是试图重新创建研究论文中发现的曲线 该模型拟合了 1987 年崩盘前股市走势的曲线 我定义了一个函数func 如下 func lt function a b tc t a
  • 基于条件反应逻辑闪亮的 Flexdashboard

    我正在尝试有条件地进行一种类型的渲染 renderPlot 或其他 renderText 基于一些输入 这是我尝试过的 title Citation Extraction output flexdashboard flex dashboar
  • 使用 purrr、broom 从许多单变量模型中获得整洁的输出

    我有一个由二进制结果列组成的数据框 y 和多个独立的预测列 x1 x2 x3 我想运行许多单变量逻辑回归模型 例如y x1 y x2 y x3 并将每个模型的指数系数 比值比 95 置信区间和 p 值提取到数据框 标题的行中 在我看来 使用

随机推荐

  • scandir() 按修改日期排序

    我正在努力使scandir 函数超出了其书面限制 我需要的不仅仅是它当前支持的 alpha 排序 我需要排序scandir 结果按修改日期排序 我尝试了在这里找到的一些解决方案以及来自不同网站的其他一些解决方案 但没有一个对我有用 所以我认
  • 具有常用选项的 Python 多命令 CLI

    我正在为我的 Python 应用程序添加 CLI CLI 应允许一次运行多个命令 命令应该有公共选项和个人选项 Example python mycliapp py common option1 value1 common option2
  • 如何/为什么将图像数据存储为 char - OpenCV

    我有点困惑 我刚刚开始使用 OpenCV 它的图像数据由字符指针指向 考虑到实际数据本身可以是任意数量的数据类型 例如 我无法完全弄清楚它是如何工作的 uint 浮点数 双精度 据我所知 指针必须与其所代表的指针具有相同的类型 可能值得注意
  • 如何截取屏幕的一部分并将其保存为 BMP? [复制]

    这个问题在这里已经有答案了 可能的重复 如何在c 中使用win32制作屏幕截图 我目前正在尝试创建一个将屏幕的一部分保存到 bmp 的应用程序 我已经发现BitBlt但我真的不知道该怎么办 我尝试寻找一些答案 但仍然没有找到使用 C 的澄清
  • Safari/Chrome 中的 MouseOver MouseOut 问题

    这是一个奇怪的现象 我很惊讶我以前从未注意到它 它的工作原理是这样的 如果你的鼠标是静止的 并且 div 以编程方式在你的鼠标下方移动 mouseoverChrome Safari 中不会触发事件 同样适用mouseout 当然 如果 di
  • “MySQL”未被识别为内部命令(Apache Cordova for Visual Studio)

    当我使用 Cordova Apache Tools 在 Visual Studio 中构建空白应用程序时 出现以下错误 MySQL 未被识别为内部命令 Build started Project FirstAppInCordova Conf
  • 在 React 中渲染 array.map()

    我遇到一个问题 我试图使用数据数组来渲染 ul 元素 在下面的代码中 控制台日志工作正常 但列表项没有出现 var Main React createClass getInitialState function return data da
  • 在 Angular 中滚动(单击)到特定 div

    我有一个 contentdiv 和一个按钮组件 当我单击按钮时 我想滚动到 content div 的顶部 HTML div Loren ipsum div div top div topscroll component ts export
  • 在 Qt 中渲染 OpenGL 场景并将其流式传输到 HTML5 界面

    我想知道是否可以在 Qt 中渲染 OpenGL 场景并将其实时传输到 HTML5 界面 我的意思是场景是当场生成的 我一直在尝试查找有关此内容以及如何操作的信息 但没有成功 如果存在 是否有任何现有机制来压缩图像并优化带宽使用 我正在考虑使
  • 使用 IComparer 进行随机播放

    首先 我确实了解费舍尔 耶茨洗牌法 但为了论证起见 我想允许用户从下拉列表中选择排序选项 该列表将包括 随机 选项 根据他们的选择结果 我只想用 IComparer 实例替换我的排序 IComparer 会是什么样子 谷歌带来了大量有缺陷的
  • 您将如何将实体框架 (1.0) 与 ASP.Net 成员资格结合使用?

    我正在尝试为使用 ASP Net 成员资格进行用户身份验证的应用程序设计一个实体模型 在我创建的大多数数据库模式中 记录通常最终通过 aspnet users 表上的 UserId 字段与用户相关 这在过去对我来说效果很好 但现在我使用 E
  • 循环遍历值或注册表项.._winreg Python

    我将如何循环通过all the values使用 Python 模块 winreg 的 Windows 注册表项 我有可以执行我想要的操作的代码 但它是针对指定注册表项的子项的 这是代码 from winreg import t OpenK
  • 是否可以在运行时设置 Windows 程序的语言或区域设置?

    我们有一些现有的软件 C Windows 应用程序 它们的资源已被翻译成多种语言供不同的客户使用 该应用程序从 Windows 区域设置中获取区域设置并以适当的语言运行 根据最近的订单 我们将资源翻译成德语 但我们刚刚发现客户正在安装英语版
  • MSMQ 创建错误:工作组安装计算机不支持该操作/用户的内部消息队列证书不存在

    这让我有点抓狂 所以如果有人能提供帮助 我将非常感激 我试图将消息从域内的服务器发送到公共队列到域控制器 但出现错误 工作组安装计算机不支持该操作 我已在域控制器上设置了 MSMQ 并在公共队列文件夹中创建了一个消息队列 我知道以前也有人问
  • 即使超类实现了相同的接口,在子类中实现接口有什么好处吗?

    当我看到声明时ArrayList class ArrayList
  • 无法从释放的脚本执行代码 - IE6 IE7 IE8 IE9

    我今天在 IE6 中遇到了这个问题 但在所有最新版本的 IE 上都可以重现 我注意到很多人遇到这个问题 但我还没有看到一个非常实用的方法来解决这个问题 关于 HTML 文档头部中脚本标签和元标签的顺序 似乎还有一些其他解决方案 我还没有确认
  • 在Python中的两层循环中使用相同的变量时发生了什么?

    我测试以下代码 for i in range 3 for i in range 3 5 print inner i d i print outer i d i 输出是 inner i 3 inner i 4 outer i 4 inner
  • Typescript 中有“Class”类型吗?那么“任何”包括它吗?

    在Java中 你可以给出一个类到方法使用类型 Class 作为参数 我在打字稿文档中没有找到类似的内容 是否可以将类交给方法 如果是这样 类型 any 是否包括此类类类型 背景 我在使用 Webstorm 时遇到问题 告诉我无法将课程移交给
  • Cordova - 下载下载文件夹中的文件

    我读了很多帖子 但没有得到最终答案 从这里的代码开始link 我将文件下载到应用程序中 无论如何 我想在 下载 文件夹中看到它 我使用的是 Android 但显然我想要一个也适用于 iOS 的解决方案 EDIT 如果您已经知道文件的路径 则
  • 在 R 中,为什么 POSIXct 和 POSIXlt 之间存在一毫秒的差异?

    这个片段 options digits secs 3 s lt 12 00 00 188 fmt lt I M OS print strptime s fmt print as POSIXct strptime s fmt 给出这个文本输出