【发布时间】:2022-12-28 12:17:04
【问题描述】:
假设我有一个如下所示的原始数据集。作为整理过程,我尝试选择没有 NA 值的列 - 或者删除带有 NA- 的列,引用this
原始数据
#> data_name col_a col_b
#> <chr> <int> <int>
#> 1 data_a 30 NA
#> 2 data_b 20 75
#> 3 sum 50 NA
删除 NA 列的代码
data_without_na <- raw_data %>% select_if(~ !any(is.na(.)))
data_without_na
输出
#> data_name col_a
#> <chr> <int>
#> 1 data_a 30
#> 2 data_b 20
#> 3 sum 50
输出如我所愿,但我很困惑为什么在条件的开头需要波形符 (~)。
到目前为止,这是我的理解:
- R 中的波浪号:将等式的左侧与右侧分开
- !: 否定
- any(is.na(.)):如果有任何 na 值,则每列的 true 或 false 值
波浪号如何在没有左侧变量的情况下工作?
【问题讨论】: