Kev*_*vin 5 r missing-data na tidyverse
我有一个包含许多列和许多行的数据框。
col_1 | col_2 | ... | col_n
35 | NA | ... | 2
. | . | . | .
. | . | . | .
. | . | . | .
123 | 90 | ... | NA
Run Code Online (Sandbox Code Playgroud)
某些行包含 NA 值(可以超过 1 个 NA)。
我希望找到包含 1 个 NA 的所有行,并将其替换为其他列的总和。
我如何使用 tidyverse 来实现它?
我使用了 Anil Goyal 的玩具数据(谢谢!)
今天有一个类似的问题请参阅这里: R: Replace NA with other Variables in the df using tidyverse
在这里,我们:
.keep = "unused"删除了“助手”列。df %>%
mutate(rowsum1 = rowSums(., na.rm=TRUE)) %>%
mutate(count_na = rowSums(is.na(select(.,everything())))) %>%
mutate(across(starts_with("col"), ~case_when(count_na ==1 ~coalesce(.,rowsum1),
TRUE ~ as.numeric(.))
), .keep ="unused"
)
Run Code Online (Sandbox Code Playgroud)
输出:
col_1 col_2 col_3 col_4
1 35 421 1223 767
2 43 54 435 78
3 234 NA NA 65
4 784 8 687 89
5 23 45 78 146
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
507 次 |
| 最近记录: |