前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >多个关键词匹配查找问题,这个方法可能更优!

多个关键词匹配查找问题,这个方法可能更优!

作者头像
大海Power
发布于 2021-08-31 03:35:15
发布于 2021-08-31 03:35:15
1.2K03
代码可运行
举报
运行总次数:3
代码可运行

- 问题 -

最近,在项目上碰到一个用多个关键词去匹配从而识别出内容的归属问题,比如公司的产品,虽然有标准的型号,但是,可能在实际应用中(尤其是一些手工报表),会有简称、简写、中文名称等多种情况,这时,就可以考虑通过多个关键词来识别出该产品的标准型号。

经过简化转换,以下通过识别出标准省份为例:

- 常规解法 -

这个问题咋一看起来,感觉跟以往的关键词(一个列表)的形式有点儿不一样,实际上,经过简单转换,即可以变成原来的问题,如将列表进行逆透视:

这样,我们就得到了关键词的对照表:

当然,因为这里还有英文,所以为了避免大小写的问题,如前面文章《n个关键词,还大小写不一,咋统计?》和《再用关键词统计这个案例,把3种算法优化思路讲清楚。》里的方法,可以先转换为大写或小写,这样避免后面在进行判断过程中再频繁转换。

经过对关键词对照表的处理,我们就可以在需要进行关键词匹配的地方引用该表(为了提升效率,先对表进行缓存,相关知识可参考文章《PQ-M及函数:加Buffer缓存提升查询效率》),并通过合适的办法来获取对应的信息了。

首先,我们最常用的方法,即通过Table.SelectRows去筛选出符合条件的内容,然后取其中第1条(行)中的省份列。(相关案例可参考《这个用Power Query操作步骤太多了,还不如用VBA?》)如下所示:

- 改进解法 -

但是,我们仔细想一下,这个问题里,我们只要找到关键词里的一个就可以了,并不需要对全表进行搜素,也就是说,我们只要找到表中第一条符合条件的数据,即可返回结果,于是,方法改进如下:

即对表从头开始判断,跳过(Table.Skip)表最前面不符合条件的行,这样得到的结果表中的第一行(Table.First)即为符合条件的行(记录),从中取出省份的内容即可。

- 关于关键词 -

关于关键词的问题,前面举了大量的例子,这些例子都来自于实际工作,表面上看起来五花八门,但实际都可以转化为内容的包含判断、表或列表的操作,而且,往往一题多解,如我前面文章中有个例子《惊呆必藏!1个实际工作问题,15种解法,练好22个函数!》。

总的来说,关键还是在于对表即列表相关函数的熟悉和灵活运用。后续我会遇到相关问题时,继续与大家分享,让大家可以通过更多的案例来熟悉这些函数即应用场景。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Excel到PowerBI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
R语言亚组分析1行代码实现!
本来找了好久没找到可以实现这个功能的R包,都打算自己写个包了,没想到这几天找到了!
医学和生信笔记
2023/08/30
1.4K1
R语言亚组分析1行代码实现!
Publish做亚组分析有问题吗?
Publish包有一个subgroupAnalysis函数也可以实现亚组分析。我在之前的推文中说这个函数有一些问题,所以不推荐使用。
医学和生信笔记
2023/10/10
5370
Publish做亚组分析有问题吗?
R语言生存分析:Cox回归
上次介绍了生存分析中的寿命表、K-M曲线、logrank检验、最佳切点的寻找等,本次主要介绍Cox回归。
医学和生信笔记
2023/02/14
1.8K1
R语言生存分析:Cox回归
「R」管道统计分析——rstatix使用指南
rstatix 包提供了一个与「tidyverse」设计哲学一致的简单且直观的管道友好框架用于执行基本的统计检验, 包括 t 检验、Wilcoxon 检验、ANOVA、Kruskal-Wallis 以及相关分析。
王诗翔呀
2020/07/03
3K0
「R」管道统计分析——rstatix使用指南
我承认tidyverse已经脱离了R语言的范畴
最近知乎热议:R和Python谁更优雅的问题,或者谁更适合数据分析的问题,各种讨论,非常值得一看:
邓飞
2022/05/19
6920
我承认tidyverse已经脱离了R语言的范畴
R语言方差分析总结
这篇文章涵盖了孙振球,徐勇勇《医学统计学》第4版中关于方差分析的章节,包括:多样本均数比较的方差分析/多因素实验资料的方差分析/重复测量设计资料的方差分析/协方差分析。
医学和生信笔记
2022/11/15
2.8K0
R语言方差分析总结
R语言倾向性评分:回归和分层
倾向性评分有4种应用,前面介绍了倾向性评分匹配及matchIt和cobalt包的使用:R语言倾向性评分:匹配
医学和生信笔记
2023/02/14
1.5K0
R语言倾向性评分:回归和分层
R语言生存曲线的可视化(超详细)
关于Cox模型诊断和汇总在之前的推文中已经进行过详细的讲解:R语言生存分析:Cox回归
医学和生信笔记
2023/02/14
3K0
R语言生存曲线的可视化(超详细)
真的!森林图(Forest Plot)全部绘制技巧都在这了
今天这篇推文,小编就带大家了解一下森林图(Forest Plot) 的绘制方法,主要内容如下:
郭好奇同学
2021/07/30
35.6K1
真的!森林图(Forest Plot)全部绘制技巧都在这了
p for trend/ p for interaction/ per 1 sd 的R语言实现
本篇主要介绍P for trend、p for interaction、per 1 sd的R语言实现,关于每一项的具体含义,可参考文中给出的链接,或者自己搜索学习。
医学和生信笔记
2023/02/14
1.4K0
R语言有序logistic回归-因变量为等级资料
“医学和生信笔记,专注R语言在临床医学中的使用、R语言数据分析和可视化。主要分享R语言做医学统计学、临床研究设计、meta分析、网络药理学、临床预测模型、机器学习、生物信息学等。
医学和生信笔记
2022/11/15
2K0
R语言有序logistic回归-因变量为等级资料
R语言多项逻辑回归-因变量是无序多分类
因变量是无序多分类资料(>2)时,可使用多分类逻辑回归(multinomial logistic regression)。
医学和生信笔记
2022/11/15
1K0
R语言多项逻辑回归-因变量是无序多分类
R语言方差分析的注意事项
R语言做方差分析很简单,就是一个函数aov(),包括但不限于单因素方差分析、多因素方差分析、协方差分析、重复测量方差分析等,都是这个函数。
医学和生信笔记
2022/11/15
1.5K0
R语言方差分析的注意事项
R自定义构建函数绘制相关性条形图
构建好绘图函数后让我们来进行可视化的操作,由于原始数据较多在此我们筛选一部分数据进行可视化操作
R语言数据分析指南
2022/09/21
4700
R自定义构建函数绘制相关性条形图
R语言多个样本均数的多重比较
对于多个样本均数的多重比较,比较常用的是LSD-t,SNK,Dunnett,Tukey等,这些方法在之前的推文中介绍过。
医学和生信笔记
2022/11/15
1.2K0
R语言多个样本均数的多重比较
R语言因子分析
因子分析可以看做是主成分分析的进一步扩展,主成分分析重点在综合原始变量的信息,而因子分析重在解释原始变量之间的关系。
医学和生信笔记
2023/02/14
5580
R语言因子分析
临床预测模型概述6-统计模型实操-单/多因素Logistic回归
既往推文已经介绍过了logistic,cox,lasso回归(https://mp.weixin.qq.com/s/pXRZ1rYUr3lwH5OlDeB0_Q),接下来将重点进行代码的实操。
凑齐六个字吧
2024/08/07
2140
临床预测模型概述6-统计模型实操-单/多因素Logistic回归
R语言生存分析的实现
生存分析是临床常用统计方法,一旦和时间扯上关系,分析就变得复杂多了,此时不再是单一的因变量,还需要考虑时间给因变量和自变量带来的各种影响。
医学和生信笔记
2023/02/14
1.4K0
R语言生存分析的实现
R语言计算AUC(ROC曲线)的注意事项
并详细介绍了如何手动计算真阳性率/假阳性率,以及怎样计算多个,并把点连接成线,变成ROC曲线:ROC曲线纯手工绘制
医学和生信笔记
2023/02/14
1.6K0
R语言计算AUC(ROC曲线)的注意事项
R语言读CSV、txt文件方式以及read.table read.csv 和readr(大数据读取包)
首先准备测试数据*(mtcars) 分别为CSV.    TXT read.table 默认形式读取CSV(×)与TXT(效果理想) ① > test<-read.table("C:/Users/ad
学到老
2018/03/19
8.4K0
R语言读CSV、txt文件方式以及read.table read.csv 和readr(大数据读取包)
推荐阅读
相关推荐
R语言亚组分析1行代码实现!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验