用与R中唯一对应的平均值填充NA

时间:2019-12-11 16:10:01

标签: r mean na fill

我想用另一列中唯一值的平均值填充数据表中的NA行。请查看预期的输出。如何在R中实现这一目标?我更喜欢数据表输出。

data2 <- data.table(Plan=c(11,11,11,11,91,91,91,91), Price=c(4.4,4.4,4.4,NA,3.22,3.22,3.22,NA), factor=c(0.17,0.17,0.17,NA,0.15,0.15,0.15,NA), Type=c(4,4,4,4,3,3,3,3))

data2
   Plan Price factor Type
1:   11  4.40   0.17    4
2:   11  4.40   0.17    4
3:   11  4.40   0.17    4
4:   11    NA     NA    4
5:   91  3.22   0.15    3
6:   91  3.22   0.15    3
7:   91  3.22   0.15    3
8:   91    NA     NA    3



Output
       Plan Price factor Type
    1:   11  4.40   0.17    4
    2:   11  4.40   0.17    4
    3:   11  4.40   0.17    4
    4:   11  4.40   0.17    4
    5:   91  3.22   0.15    3
    6:   91  3.22   0.15    3
    7:   91  3.22   0.15    3
    8:   91  3.22   0.15    3

1 个答案:

答案 0 :(得分:0)

我们可以使用按“计划”分组的{​​{1}}来更改具有非NA先前值的NA

na.locf

如果我们需要library(zoo) data2[, factor := na.locf(factor), by = Plan] ,请使用mean

na.aggregate

对于多列

data2[, factor := na.aggregate(factor), by = Plan]