问题标签 [grepl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2914 浏览

r - 如何从列中的名称中提取标题?

我有一列形式为“霍布斯,杰克先生”的名称,即姓氏、头衔。名。头衔有4种类型——“先生”、“夫人”、“小姐”、“大师”。如何搜索列中的每个项目并返回标题,我可以将其存储在另一列中?

所需的输出 - 带有值的列“标题” -("Mr","Master", "Mrs",.....)

我尝试过这样的事情:

没有成功>.<

0 投票
1 回答
480 浏览

regex - 在R中的整个data.frame中查找子字符串/用新值替换完整字符串

我有一个包含许多列的大型数据框。对于这些列的子集,我想匹配子字符串并替换

两列子集的示例如下所示:

我想使用 grepl 类型命令将其中带有“Low_Confidence”的字段替换为 ./。跨越整个数据框。

我试过了:

其中大多数返回 data.frames,相关列中的所有值都带有 ./。无论它们是否符合 Low_Confidence 标准。

我还尝试将 data.frame 转换为矩阵

没有成功。我知道如果我一次做一列是可能的,例如:

但是对于高度重复的 100 列。

因此,我正在寻找一种解决方案,该解决方案将查找/替换与通配符匹配的整个字符串(不仅仅是匹配的文本)在 data.frame 中的所有或列的子集(两者都可以)。

谢谢!

0 投票
1 回答
278 浏览

r - 替换R中不同列中的多个“小于值”

我有一个用于实验室分析几个参数的数据框。许多值低于检测限并被报告为(<检测限;例如<0.005)

数据框如下所示

我想使用这个公式转换低于检测限的所有值

我为 varA 做了这个,如下所示

我可以对低于检测限的其他列和其他值执行相同的操作。但是,考虑到我的数据很大,这将需要时间。

有什么建议可以快速更改不同列中低于检测限的所有值吗?

0 投票
0 回答
155 浏览

r - grepl在r中没有循环的多个组合

大编辑 - 试图简化输出和问题**

我在从之前的一组组合中提取变量组合时遇到问题(可能有一种更简单的方法,但这是我用 grepl 和循环完成这项工作的笨拙方法)。

它可以工作,但是使用更大的数据集需要很长时间,而且我找不到And没有循环的标准答案。

在此示例中,我试图从“comb1”中删除包含 3 个“comb”组合的每个组。

如果有人可以提供帮助,这是我的代码。非常感激

mydata

编辑 - 谢谢@MLavoie,这是dput我的缩短mydata

该代码适用于我获取数据及其格式的方式,但问题在于顺序:which(grepl(combM[1,j],comb1) & grepl(combM[2,j],comb1) & grepl(combM[3,j],comb1))在这个小示例中它很快,但对于更大的数据集则需要很长时间

0 投票
1 回答
59 浏览

regex - R - 遍历 2 个对象

我正在尝试做一些相当简单的事情(我认为),但我无法理解它。我正在尝试编写一个循环来检查数据框中的字符变量是否包含任何特定的子字符串列表,并将相应的值分配给虚拟变量。

因此,想象一个带有变量的 data.frame,n=2000 data.frame$text。此外,我有一个字符向量,其中包含我想要为其发送文本的所有子字符串data.frame$text。让我们称之为hillary_exists

现在,我希望我的循环测试 的每一行data.frame$text是否存在 的每个元素hillary_exists,如果它们中的任何一个是,则为变量TRUE生成一个新的值1data.frame$hillary_mention。这是我尝试过的:

但显然我错过了元素的i组件data.frame$text,但我不知道如何解决它。

任何帮助将不胜感激!谢谢

0 投票
1 回答
920 浏览

regex - R:grepl选择字符串上的第一个字符

我提前道歉,这可能是一个重复的问题。但是,我刚刚花了最后两个小时在 stackoverflow 上,似乎找不到解决方案。

我想用来grepl检测以数字开头的行,这就是我尝试使用的,但它没有给我正确的答案:

我想问题出在正则表达式"^[:digit:]"上,但我想不通。

更新

我的数据框看起来像这样,它很大,但下面是一个示例:

我想检测名称以数字开头的产品。

更新 2

应用grep.numeric=grepl("^[[:digit:]]",df_mod$name)下面的例子给我正确的答案是:

但是,让我发疯的是当我将这个函数应用于我的真实数据框时:

给我这个结果:

但实际上,我所拥有的是:

请帮我。

0 投票
2 回答
2346 浏览

r - 使用 grepl 从多列文本中提取值

我有一个数据框(df),其中包含州和城市的 2 列数据。但是,有时 2 列中的数据被转置或输入错误。数据框将如下所示:

我想通过从这两个列中提取“曼谷”来创建一个新列“城市”。我可以通过以下方式为一列执行此操作:

但是,我想一次搜索至少 2 列或更多列,例如:

显然,这是行不通的。我认为 plyr 中的“过滤器”做了类似但相反的事情。

任何帮助表示赞赏。谢谢!

0 投票
1 回答
1046 浏览

r - R:提取和粘贴关键字匹配

我是 R 新手,一直在努力解决这个问题。我想创建一个新列,检查“text”列中是否存在一组单词(“foo”、“x”、“y”),然后将该值写入新列。

我有一个看起来像这样的数据框:a->

正确的输出应该是:

a2->

我有这个:

哪个有效,但是当我的 needleList 包含 12k 个单词并且我的文本有 155k 行时,R 会崩溃。有没有办法做到这一点不会使 R 崩溃?

0 投票
2 回答
48 浏览

r - 查找并返回多个独立字符串

我有一个表,在同一列中有几个不同的字符串。我希望能够搜索该列并找到不同的字符串,然后为每个不同的字符串返回不同的结果。例如,如果我有以下数据列:

我想搜索字符串“ATI”并返回“ATI”并搜索“FU”并返回“FU”和“TP1”并返回“TP1”,这样我就可以用单独的字符串构建一个新表column2。我可以grepl为单个值执行此操作,但我不知道如何为多个输出执行此操作。一些警告是数据并不总是以相同的顺序或由相同的符号分隔。

这似乎只适用于一个,但我不知道如何将其扩展为适用于几个。

最后我想:

0 投票
1 回答
567 浏览

regex - 如何在不知道 R 中的单词的情况下匹配某个字符之后的单词?

我想-在我的文本中匹配 a 之后的单词,然后如果匹配的单词是另一个单词的结尾,那么我想在单词和匹配的单词之间进行拆分。

文本示例:

我希望文本看起来像什么:

我不想做 agrepl和 a gsubonABC因为破折号后面的词总是在变化并且会出现多次。此外,匹配单词前面的单词也将始终不同,但并不总是如此TREE。无论匹配的单词前面是什么单词,我总是想做一个拆分。

如果我执行以下 str_extract:

那我XYZ不配ABC

我只想匹配-if 之后的单词,它也在另一个单词的末尾,但是我又不知道那个单词会是什么。

我被困在做什么。如果需要任何进一步的信息,请告诉我。任何帮助将不胜感激。