【问题标题】:"Error in CharToDate(x)"“CharToDate(x) 中的错误”
【发布时间】:2015-11-13 20:34:49
【问题描述】:

我有一个包含日期的列的 csv 数据集。将数据集导入 R 后,我们需要根据特定日期范围对数据集进行子集化。

app1110 <- read.csv("file_11102015.csv")
app1110$appcom_date2 <- app1110$APPLICATION..COMPLETED..DATE

然后我们尝试了 1)

app1110$appcom_date2 <- format(as.POSIXct(app1110$appcom_date2, format= "%m/%d/%Y"), format="%m/%d/%Y")
subset(app1110, as.Date(appcom_date2 < "12/30/2013"))

错误信息:

as.Date.default(appcom_date2

那么如何根据日期范围对数据进行子集化?

【问题讨论】:

  • appcom_date2 &lt; "12/30/2013" 返回一个逻辑向量。在逻辑向量上调用 as.Date 没有意义。

标签: r date subset


【解决方案1】:

没有看到你的数据,我怀疑你需要改变这个:

as.Date(appcom_date2 < "12/30/2013")

到这里:

appcom_date2  < as.Date("12/30/2013", "%M/%d/%Y")

或者更好:

appcom_date2 &lt; as.Date("2013-12-30")

关键是您需要将字符串 ("12/30/2013") 强制转换为 Date 对象,然后然后进行比较。

【讨论】:

    【解决方案2】:

    谢谢,问题是将字符与日期类型进行比较。这修复了它:

    app1110$appcom_date2 as.Date("2013-06-01"))

    还有一个问题:子集时,我使用 appcom_date2 变量作为设置周期的标准。 如何指定从该变量中排除所有 NA 值?

    【讨论】:

    • &amp; !is.na(MyDateVariable)
    猜你喜欢
    • 1970-01-01
    • 2016-05-02
    • 2020-03-29
    • 2015-01-27
    • 2019-09-04
    • 2021-12-30
    • 2020-03-03
    • 2019-08-27
    • 1970-01-01
    相关资源
    最近更新 更多