【问题标题】:Imputing Missing Dates by position with R用 R 按位置计算缺失日期
【发布时间】:2018-01-09 04:32:08
【问题描述】:

我有一个包含 6 个变量的 21840 obs 的数据集,其中一个是一个简单的“日期”列,其中包含一堆缺失值。为了我的项目的目的,我需要根据位置来估算 NA。

例如我可能有:

  • 25/01/1990
  • 不适用
  • 27/01/1990

鉴于已订购日期,NA 是:25/01/1990 或 26/01/1990 或 27/01/1990(我一天可以有多个 obs,没问题!)。 有没有办法以简单且自动的方式复制这种推理?

我尝试使用“老鼠”将日期视为一个因素,但它不起作用!

谢谢!

附上代码:

library(mice)
init = mice(dat, maxit=0) 
meth = init$method
predM = init$predictorMatrix


meth[c("date")]="polr"

set.seed(103)
imputed = mice(dat, method=meth, predictorMatrix=predM, m=5)

【问题讨论】:

  • 到目前为止你尝试过什么代码?
  • 如果日期是按顺序排列的,那么在 1990 年 1 月 25 日和 1990 年 1 月 26 日之间,您将如何得到 27/01/1990?
  • 已更正,错字见谅

标签: r r-mice


【解决方案1】:

试试na.approx:

library(zoo)

x <- as.Date(c("25/01/1990", NA, "27/01/1990"), format = "%d/%m/%Y")
as.Date(na.approx(x))

给予:

[1] "1990-01-25" "1990-01-26" "1990-01-27"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-28
    • 2020-11-22
    • 2020-05-07
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    相关资源
    最近更新 更多