首页 > 解决方案 > 将缺失值替换为相关 ID 的值

问题描述

我有一个缺少值的数据框。

df1 <- data.frame(ID = c(1, 2, 3, 4, 5, 6), value1 = c(23, 14, NA, 45, NA, NA),
                 value2 = c(25, 15, NA, 34, NA, NA), value3 = c(33, 29, NA, 29, NA, NA))
ID  value1 value2 value3
1   23     25     33
2   14     15     29
3   NA     NA     NA
4   45     34     29
5   NA     NA     NA
6   NA     NA     NA

以及具有 id 关系的数据框。

df2 <- data.frame(ID1 = c(1, 2, 4), ID2 = c(3, 5, 6))
ID1 ID2
1   3
2   5
4   6

我想用相关 ID 的值替换缺失值。所以数据框看起来像这样。

ID value1 value2 value3
1  23     25     33 
2  14     15     29
3  23     25     33
4  45     34     29
5  14     15     29
6  45     34     29

任何帮助,将不胜感激。

标签: r

解决方案


你需要一个这样的for循环:

for (i in seq_along(df2[, "ID2"])) {   
df1[df2[i, "ID2"], c("value1", "value2", "value3")] <- df1[df2[i, "ID1"], c("value1", "value2", "value3")]   }

推荐阅读