我在使用 R 在数据框中输入缺失的观测值时遇到问题,下面是数据框的快照:
数据框示例
我实际上有 66 个不同的区,21 天,每一天,每个区应该有 144 个时间段。我拥有的当前数据集缺少观测值,例如,对于第 6 天的第 5 区,缺少时间段 132 的观测值。
我想要实现的是将缺失的观察结果包含到原始数据框中以使其完整,但是对于 y1 和 y2 的值,我可以将它们设置为 null。我怎样才能用 R 实现这一点?
我在使用 R 在数据框中输入缺失的观测值时遇到问题,下面是数据框的快照:
数据框示例
我实际上有 66 个不同的区,21 天,每一天,每个区应该有 144 个时间段。我拥有的当前数据集缺少观测值,例如,对于第 6 天的第 5 区,缺少时间段 132 的观测值。
我想要实现的是将缺失的观察结果包含到原始数据框中以使其完整,但是对于 y1 和 y2 的值,我可以将它们设置为 null。我怎样才能用 R 实现这一点?
您没有提供可重现的示例,因此这里有一些基本指导。
首先,为缺失值添加行。让我们假设您的数据框被调用mydata
并具有列District
、、DayOfMonth
和TimePeriod
(加上 y1、y2 等),但缺少这些值的某些组合。让我们添加那些缺失的组合:
library(dplyr)
df = expand.grid(District=1:66, DayOfMonth=1:21, TimePeriod=1:144) %>%
left_join(mydata)
您现在拥有一个包含所有原始数据的数据框,以及具有先前不存在的 、 和 组合的新行,这些组合District
在DayOfMonth
y1 、y2 等数据列TimePeriod
中填充。NA
有关这些缺失值的估算,请参见例如mi 包和mouse 包。
这是另一个expand
选项fill
tidyr
library(dplyr)
library(tidyr)
expand(District = 1:66, DayOfMonth = 1:12, TimePeriod = 1:144) %>%
left_join(mydata) %>%
fill(., District, DayOfMonth, TimePeriod)