【发布时间】:2015-12-14 19:48:37
【问题描述】:
我有一个包含 3 列“x”、“y”和“z”的数据框 (datadf)。缺少几个“x”值 (NA)。 'y' 和 'z' 是非测量变量。
x y z
153 a 1
163 b 1
NA d 1
123 a 2
145 e 2
NA c 2
NA b 1
199 a 2
我有另一个具有相同三列的数据框(imputeddf):
x y z
123 a 1
145 a 2
124 b 1
168 b 2
123 c 1
176 c 2
184 d 1
101 d 2
我希望将“datadf”中“x”中的NA 替换为“imputeddf”中的值,其中“y”和“z”在两个数据集之间匹配(“y”和“z”的每个组合都有'x' 自己的值来填写)。
想要的结果:
x y z
153 a 1
163 b 1
184 d 1
123 a 2
145 e 2
176 c 2
124 b 1
199 a 2
我正在尝试这样的事情:
finaldf <- datadf
finaldf$x <- if(datadf[!is.na(datadf$x)]){ddply(datadf, x=imputeddf$x[datadf$y == imputeddf$y & datadf$z == imputeddf$z])}else{datadf$x}
但它不起作用。
在使用我的推算值df中填写NA的最佳方式是什么?
【问题讨论】:
-
也许是示例输入和输出格式正确的示例?
-
发布示例应该产生的所需数据帧。
-
k 添加了我想要的结果,授予 col Z 超过 2 个选项
-
数据 df 有多个 y 和 z 组合实例,我只是想从我的推算数据框中切换出值的 NA 值,这似乎只是将数据框合并为一个。跨度>