首页 > 解决方案 > 从两列创建缺失值的数据子集

问题描述

我有一个数据集,其中包含个人姓名及其电话号码 Tel_1 和 Tel_2。这些电话号码有的没有任何条目,有的用 0 或 00000 填充

|-------|:-------:|-------:|
| Tom   |  87669  |        |
| Dave  |    0    |        |
| Jess  |    0    | 767589 |
| Mike  | 5673254 | 755995 |
| Jerry |         | 43789  |
| Yen   |         |        |
| Mary  | 34545   |        |

我希望以两种方式输出,一种是从任一电话号码生成包含零值或缺失值的记录,如下所示:

| Name  | Tel_1 |  Tel_2 |
|-------|:-----:|-------:|
| Tom   | 87669 |        |
| Dave  |   0   |        |
| Jess  |   0   | 767589 |
| Jerry |       | 43789  |
| Yen   |       |        |
| Mary  | 34545 |        |

另一个会从两个电话号码中生成包含 0 或缺失值的记录,如下所示:

| Name | Tel_1 | Tel_2 |
|-----:|-------|-------|
| Dave | 0     |       |
| Yen  |       |       |

标签: rsubsetnamissing-data

解决方案


library(dplyr)

# First one
data %>% filter(is.na(Tel_1) | is.na(Tel_2) | Tel_1 == 0 | Tel_2 == 0)  

# Second One
data %>% filter((is.na(Tel_1) | Tel_1 == 0) & (is.na(Tel_2) | Tel_2 == 0))

推荐阅读