【发布时间】:2020-11-15 23:34:58
【问题描述】:
在使用包含不同数据类型和名称的多列的 R tibble 时,如何正确使用 dplyr 包中的 select_if 来仅选择包含文本的列?
例如一个小标题tib,比如这个:
+----------+------------+------------+-------+
| PersonID | EmployeeID | Date | Value |
+----------+------------+------------+-------+
| 123 | abc | 10/12/2020 | 33.4 |
| 345 | fff | 10/13/2020 | 44.2 |
| 567 | ddg | 11/1/2020 | 60.2 |
+----------+------------+------------+-------+
如何使用select_if 仅选择 PersonID 和 EmployeeID 列?
到目前为止,我已经尝试了以下方法:
tib %>% select_if(~ grepl("ID", .))
但是,我收到以下错误:
Error: `.p` is invalid.
x `.p` should return a single logical.
i `.p` returns a size 2000 <logical> for column `PersonID`.
contains的使用方法正确吗?
我知道tib %>% select_if(is.character) 可以工作,但是如何编写与is.character 类似的函数来检测列标题中的字符串?
【问题讨论】: