【问题标题】:Reading Dates/Times from a SAS file: read_sas vs. read.SAS7bdat从 SAS 文件中读取日期/时间:read_sas 与 read.SAS7bdat
【发布时间】:2020-11-05 01:46:01
【问题描述】:

由于速度原因,我正在尝试在我的许多程序中用 Haven 包中的 read_sas 替换 read.SAS7bdat 函数。只需将其替换为完美的作品并且阅读速度更快。然而,我遇到的唯一问题是处理日期和时间。出于某种原因,即使基础数据看起来相同并且所有其他功能都有效,我也不能再按 R Shiny 日期输入中选择的日期进行子集化。如果有人知道这两个函数如何读取日期之间的区别,将不胜感激。

【问题讨论】:

  • 显示从两个不同读取中生成的 R 对象的示例以及从具有日期值的 SAS 变量创建的两个不同变量/对象/列的 R 属性。
  • 日期变量的类型在您的数据集中是否相同?是日期、数字、字符吗?

标签: r shiny sas r-haven


【解决方案1】:

SAS 中的零日期是 1960 年 1 月 1 日,而在 R(原始日期)中是 1970 年 1 月 1 日。这可能是您的问题的原因。从 SAS 中将日期作为字符引入,然后在 R 中将其转换为数字。

【讨论】:

  • 谢谢!这是两个问题之一
【解决方案2】:

有两个组成部分:首先,我必须将原始日期更改为 1970 年,而不是之前使用 read.sas7bdat 时使用的 1960 年。我之前也将所有内容都转换为 POSIX 日期,效果很好。但是,R 闪亮日期输入的子集不适用于 read_sas,因此我使用 as.date 转换了 posix 并解决了它。不完全确定为什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-11
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-06
    相关资源
    最近更新 更多