如何使用与dplyr在同一变量中的值按组完成缺失值

wr98u20j  于 2023-02-17  发布在  其他
关注(0)|答案(2)|浏览(114)

我有以下数据:

variable value         un2       n  prop     desired-result-for-un2
   <chr>    <fct>         <fct> <int> <dbl>         <fct>
 1 CHR_01   Never         0         2   1             0
 2 CHR_01   Almost Never  NA        0   0             0
 3 CHR_01   Sometimes     NA        0   0             0  
 4 CHR_01   Often         NA        0   0             0
 5 CHR_01   Almost Always NA        0   0             0
 6 CHR_011  Never         1         1   0.5           1
 7 CHR_011  Almost Never  1         1   0.5           1
 8 CHR_011  Sometimes     NA        0   0             1
 9 CHR_011  Often         NA        0   0             1
10 CHR_011  Almost Always NA        0   0             1
11 CHR_02   Never         0         1   0.5           0
12 CHR_02   Almost Never  0         1   0.5           0

在第一行中,un2变量的值为0。我想使用variable组中的可用值来完成un2变量。即从2到5(第一组)的行用0完成,该组的所有缺失值用1完成NA,等等......例如desired-result-for-un2列。
任何dplr技巧,使它将是受欢迎的,谢谢提前,马克

zzlelutf

zzlelutf1#

我们可以用“变量”分组后的fill。NA将由最后一个非NA先向下填充,然后向上填充(.direction

library(tidyr)
library(dplyr)
df1 %>%
    group_by(variable) %>%
    fill(un2, .direction = 'downup') %>%
    ungroup
xa9qqrwz

xa9qqrwz2#

谢谢你@akrun的回答。我找到了一个答案:

df1 %>%
    group_by(variable) %>%
    mutate( un4 = rep( unique( na.omit(un2)  , n()  ) ))

但是我觉得这里不是很干净。

相关问题