全部,
我有一个问题,我担心在这里问可能太普通了,但在别处寻找它会让我误入歧途。我可能没有使用正确的搜索词。
我在 R 中有一个面板数据框(国家年),给定变量有一些缺失值。我试图用另一个数据框中另一个向量的值来估算它们。这是我正在尝试做的一个说明。
假设Data
是感兴趣的数据框,它在给定向量上有缺失值,我试图从另一个捐助者数据框进行估算。它看起来像这样。
country year x
70 1920 9.234
70 1921 9.234
70 1922 9.234
70 1923 9.234
70 1924 9.234
80 1920 NA
80 1921 NA
80 1922 NA
80 1923 NA
80 1924 NA
90 1920 7.562
90 1921 7.562
90 1922 7.562
90 1923 7.562
90 1924 7.562
这将是Donor
框架,其值为country == 80
country x
70 9.234
80 1.523
90 7.562
我试图找到一种无缝的方式来自动化这个,超越Data$x[Data$country == 80] <- 1.523
. 有很多国家在x
.
可能值得澄清的是,简单的merge
将是最简单的,但不一定适合我正在尝试做的事情。一些国家会x
在不同年份看到变化。基本上,我想要完成的是一个命令,如果给定国家/地区的所有年份x
都缺少Data
的值,则从数据中获取该国家/地区的相应值Donor
并将其粘贴到所有国家/地区年份作为“最好的猜测”之类的。
感谢您的任何意见。我怀疑这是一个菜鸟问题,但我不知道搜索它的正确术语。
上述数据的可重现代码如下。
country <- c(70,70,70,70,70,80,80,80,80,80,90,90,90,90,90)
year <- c(1920,1921,1922,1923,1924,1920,1921,1922,1923,1924,1920,1921,1922,1923,1924)
x <- c(9.234,9.234,9.234,9.234,9.234,NA,NA,NA,NA,NA,7.562,7.562,7.562,7.562,7.562)
Data=data.frame(country=country,year=year,x=x)
summary(Data)
country <- c(70,80,90)
x <- c(9.234,1.523,7.562)
Donor=data.frame(country=country,x=x)
summary(Donor)