【发布时间】:2017-01-31 07:26:09
【问题描述】:
我有一个纵向结构与data相似的数据框:
data = data.frame (
ID = c("a","a","a","b","b","b","c","c", "c"),
period = c(1,2,3,1,2,3,1,2,3),
size = c(3,3,NA, NA, NA,1, 14,14, 14))
变量size 的值是固定的,因此每个周期对于size 具有相同的值。然而,一些观察结果存在缺失值。我的目标是替换这些缺失值
size 的值与没有缺失的时段相关联(例如,ID "a" 为 3,ID "b" 为 1)。
所需的数据框应类似于:
data.1
ID period value
a 1 3
a 2 3
a 3 3
b 1 1
b 2 1
b 3 1
c 1 14
c 2 14
c 3 14
我尝试了以下公式的不同组合,但没有得到我想要的结果。
library(dplyr)
data.1 = data %>% group_by(ID) %>%
mutate(new.size = ifelse(is.na(size), !is.na(size),
ifelse(!is.na(size), size, 0)))
产生以下结果:
data.1
Source: local data frame [9 x 4]
Groups: ID [3]
ID period size new.size
(fctr) (dbl) (dbl) (dbl)
1 a 1 3 3
2 a 2 3 3
3 a 3 NA 0
4 b 1 NA 0
5 b 2 NA 0
6 b 3 1 1
7 c 1 14 14
8 c 2 14 14
9 c 3 14 14
如果有人能给我提示如何获得正确的解决方案,我将不胜感激。
【问题讨论】:
标签: r missing-data panel-data