能否在dplyr的count函数中搭配表达式匹配函数使用
实现方案
你需要的功能可以直接通过字符串匹配函数实现,无需调用dplyr适配select的列匹配工具,两种常用实现方式如下:
- 搭配tidyverse生态的
stringr包实现(写法更易读)
若仅需要统计匹配/不匹配X33开头的两类总数量,直接在count中传入匹配表达式即可:
若需要分别统计每一个X33开头的取值的对应数量,先筛选匹配项再计数即可:count(datasetName, str_starts(variableName, "X33"))datasetName %>% filter(str_starts(variableName, "X33")) %>% count(variableName) - 使用base R内置函数实现,无需额外加载依赖包
仅统计匹配/不匹配两类总数量:
分别统计每个匹配取值的数量:count(datasetName, grepl("^X33", variableName))datasetName %>% filter(grepl("^X33", variableName)) %>% count(variableName)
原理说明:count的第二个参数支持传入任意合法的表达式作为分组依据,你当前的需求是匹配variableName列的单元格取值,而非匹配数据框的列名,因此不需要使用dplyr为select设计的列匹配函数,直接用通用字符串匹配函数即可实现需求。
内容的提问来源于stack exchange,提问作者Myke Araújo
相关产品推荐
相关产品推荐

