我下面有一个数据集:
head(weather_data)
dmanum DATE Avg_precipitation Avg_TAVG
<chr> <date> <dbl> <dbl>
1 501 2017-01-01 0.000976 45.3
2 501 2017-01-02 NA 39.3
3 501 2017-01-03 0.366 42
4 502 2017-01-01 NA 46
5 502 2017-01-02 NA 33.3
6 502 2017-01-03 NA 31.3
7 503 2017-01-01 5 46
8 503 2017-01-02 10 33.3
9 503 2017-01-03 15 31.3
同一日期的dmanum值很多。根据我对dmanum的选择,我想按周取平均值Avg_precipitation
并替换该特定DMA的NA。
例如,如果我要使用此数据集,我会尝试类似的操作,但会出现错误:
weather_data1<- weather_data %>%
group_by(DATE) %>%
filter(., dmanum==502) %>%
mutate_at(Avg_precipitation = na.fill(mean(Avg_precipitatation))
预期输出为:
dmanum DATE Avg_precipitation Avg_TAVG
<chr> <date> <dbl> <dbl>
1 501 2017-01-01 0.000976 45.3
2 501 2017-01-02 NA 39.3
3 501 2017-01-03 0.366 42
4 502 2017-01-01 2.5004 46
5 502 2017-01-02 10 33.3
6 502 2017-01-03 7.683 31.3
7 503 2017-01-01 5 46
8 503 2017-01-02 10 33.3
9 503 2017-01-03 15 31.3
答案 0 :(得分:1)
我们可以在replace
之后使用group_by
。无需filter
行,而是在list
的{{1}}参数中指定逻辑,以仅替换“ dmanum”为502的那些replace
。
NA