我有以下数据框(简化),其中国家变量作为一个因素,值变量有缺失值:
country value
AUT NA
AUT 5
AUT NA
AUT NA
GER NA
GER NA
GER 7
GER NA
GER NA
下面生成上述数据框:
data <- data.frame(country=c("AUT", "AUT", "AUT", "AUT", "GER", "GER", "GER", "GER", "GER"), value=c(NA, 5, NA, NA, NA, NA, 7, NA, NA))
现在,我想使用最后一次观察结转方法 (LOCF) 替换每个国家/地区子集中的 NA 值。我知道zoo包na.locf
中的命令。会给我以下数据框:data <- na.locf(data)
country value
AUT NA
AUT 5
AUT 5
AUT 5
GER 5
GER 5
GER 7
GER 7
GER 7
但是,该函数只能用于由 country 拆分的各个子集。以下是我需要的输出:
country value
AUT NA
AUT 5
AUT 5
AUT 5
GER NA
GER NA
GER 7
GER 7
GER 7
我想不出一个简单的方法来实现它。在开始使用 for 循环之前,我想知道是否有人知道如何解决这个问题。
非常感谢!!