我有一个大数据集,如下所示:
Test = data.frame("ID" = c(rep(1,3), rep(2,4), rep(3,5)),
"Value" = c(NA, 1, NA, NA, 0.33, 0.33, 0.33, 0.5, NA, NA, 0.5, NA))
| 识别号|价值|
| - ------|- ------|
| 1个|不适用|
| 1个|1个|
| 1个|不适用|
| 第二章|不适用|
| 第二章|0.33|
| 第二章|0.33|
| 第二章|0.33|
| 三个|0.5分|
| 三个|不适用|
| 三个|不适用|
| 三个|0.5分|
| 三个|不适用|
每个ID都有NAs并且只有一个值,可以重复很多次。我希望每个组(group variable = ID)中的每个值都是非空值,在本例中,我期望得到以下结果:
| 识别号|价值|
| - ------|- ------|
| 1个|1个|
| 1个|1个|
| 1个|1个|
| 第二章|0.33|
| 第二章|0.33|
| 第二章|0.33|
| 第二章|0.33|
| 三个|0.5分|
| 三个|0.5分|
| 三个|0.5分|
| 三个|0.5分|
| 三个|0.5分|
我试过这样的方法:
Test %>% group_by(ID) %>% coalesce(Value, first(na.omit(Value)))
...但我收到错误:* 列表2中的错误(...):未找到对象'Value'*
有人能帮我吗?
1条答案
按热度按时间yptwkmov1#
我们可以使用
tidyr
包中的fill
: