【问题标题】:Input missing days in a day sequence in R在R中的一天序列中输入缺失的天数
【发布时间】:2016-10-08 02:14:49
【问题描述】:

我在使用 R 在数据框中输入缺失的观测值时遇到问题,下面是数据框的快照:

数据框示例

我实际上有 66 个不同的区,21 天,每一天,每个区应该有 144 个时间段。我拥有的当前数据集缺少观测值,例如第 6 天的第 5 区,缺少时间段 132 的观测值。

我想要实现的是将缺失的观察结果包含到原始数据框中以使其完整,但是对于 y1 和 y2 的值​​,我可以将它们设置为 null。如何使用 R 实现这一目标?

【问题讨论】:

  • 你有缺失值吗?如果有,采用什么格式?
  • 发布一些最小的示例 R 数据框,其中包含您的数据方式和您想要的方式。制作示例数据并不难。这将有助于我们实际编写适合您的情况的代码。

标签: r imputation


【解决方案1】:

这是expandfill的另一个选项,来自tidyr

library(dplyr)
library(tidyr)
expand(District = 1:66, DayOfMonth = 1:12, TimePeriod = 1:144) %>%
            left_join(mydata) %>% 
            fill(., District, DayOfMonth, TimePeriod)

【讨论】:

  • HI akrun,非常感谢您的快速回复。我尝试使用您的代码,但收到一条警告:“缺少数据参数,没有可用的默认值。”我该如何解决这个问题?
【解决方案2】:

您没有提供可重现的示例,因此这里有一些基本指导。

首先,为缺失值添加行。假设您的数据框名为mydata,并具有DistrictDayOfMonthTimePeriod 列(加上y1、y2 等),但缺少这些值的某些组合。让我们添加那些缺失的组合:

library(dplyr)

df = expand.grid(District=1:66, DayOfMonth=1:21, TimePeriod=1:144) %>%
  left_join(mydata)

您现在拥有一个包含所有原始数据的数据框,以及包含先前不存在的 DistrictDayOfMonthTimePeriod 组合的新行,这些组合在 y1、y2 等中用 NA 填充. 数据列。有关这些缺失值的插补,请参见 mi packagemice package 等。

【讨论】:

    猜你喜欢
    • 2021-07-01
    • 2023-03-08
    • 2021-06-21
    • 2021-07-20
    • 2020-07-28
    • 2015-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多