问题标签 [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 投票
1 回答
1498 浏览

r - 使用 grepl 和 dplyr 汇总 R 中的多个搜索字符串

我有一个相当杂乱无章的数据框,其中一列中相同类别的名称各不相同。我想用 dplyr 总结一下那些凌乱的名字。

这是一个简化的数据集,包含树种及其特征:

所以每个物种在这个数据集中都有许多不同类别的特征值。

您可以使用 dplyr 和下面的代码获取每个物种的汇总统计信息。

您可以看到它将相同的特征视为单独的,因为它们不完全匹配。我想对这些使用模糊匹配对许多不同的特征进行总结,但不知道如何同时在许多特征中实现这一点。到目前为止,我已经尝试使用 grepl 创建一个“必需”字符串向量来过滤。前任。

但这是使用“或”,而我想要“和”- 需要两个字符串,以便最终数据帧是包含氮和质量的所有行的单个平均值(在列 tr 中)。

此外,我有许多这些特征字符串,我希望最后有一个数据框,其中包含每个物种的这些特征的平均值。到目前为止,我已经尝试组合不同的搜索字符串,但这不起作用。

任何帮助将非常感激!

0 投票
1 回答
379 浏览

r - Grepl 第一个字母,两个要匹配的模式

我有以下数据框。如果数据框中有以 A1 或 B1 或两者开头的字符串,我想创建一个名为 A1B1 的列,如果没有,则创建一个零。

我在这里做错了什么:

我希望有一个 ID 为 (1,2,3,4,5,8,9,10) 但我只有 4,5 和 9 的 ID。

谢谢!

0 投票
1 回答
237 浏览

r - R : 用 for() 改变变量名;grepl() 和 colnames()

我试图制作一个数据面板,并且我必须重命名一些列才能应用rbind()然后运行一些统计信息。

我有多个这样的对象:

数据22

和;

数据3

等等,

我想根据它的变量更改列名(因为未排序,我不能通过正常和简单的过程来做到这一点),所以例如我尝试使用:

有了这个想法,我打算将它应用到 f​​or 中(),但即使没有for()

感谢您的帮助

0 投票
0 回答
462 浏览

r - 在 R 中使用带有 grep 的 for 循环

我的代码有问题。我有一个 for 循环,以便它识别 html 文档中的所有“强”标签,然后识别 html 中给定单词的行号。对于行号匹配的任何情况,我希望它记下该行号。到目前为止我有它,但是如果在强标签所在的行之外有一个单词的实例,它会失败

这就像做梦一样,但是如果我将 url 更改为 ID 术语出现在强标签没有出现的位置,它会失败,例如:

提前致谢

0 投票
2 回答
906 浏览

regex - 在 R 中,使用正则表达式匹配多个模式并将新列添加到列表中

我找到了许多关于如何使用一个模式和一个替换来匹配和更新整个列表的示例,但我现在正在寻找的是一种在单个语句或循环中为多个模式和多个替换执行此操作的方法。

例子:

我想插入一个名为“service_provider”的新列,其中 /^5/ 作为 Company1,/^7/ 作为 Company2。

我可以用以下两行 R 来做到这一点:

然后我得到:

我想提供一个列表,而不是一组离散的 grepl,这样更容易将特定国家/地区的信息保存在一个地方,并将所有编程逻辑保存在另一个地方。

在其他语言中,我会在电话公司列表上使用 for 循环

但我知道这不是在 R中做到这一点的方法。

0 投票
2 回答
645 浏览

regex - R:检测文本中的单词和标点符号

我有一些自然出现的文字:

以及我想在该文本中检测到的一些元素:

然而,

只返回一元“word2”和二元“word6 word7”。未检测到文本中的句点和逗号。

我怎样才能做到这一点?

0 投票
2 回答
134 浏览

r - 在 R 中的一列中查找并替换许多因子

我有 32 个不同级别的列。我需要更换这些级别

在该列中为

我知道我可以使用大量 ifelse((column = "?" | column = "diet" |.....) 语句来做到这一点,我想知道是否有一种有效的方法来替换这些因素?

0 投票
1 回答
75 浏览

r - 字符串操作和比较

我试图了解 R 如何处理字符串操作和比较。

为此,我设置了两个数据框,一个是我的原始数据,另一个是我想要比较的参考数据。我试图了解比较字符串的不同方式以及如何比较一般的数据帧(在 SQL 中似乎要容易得多,您可以只使用关键字包含)。

对于下面的示例,第一项是参考数据,第二项是原始数据。

将返回TRUE

将返回FALSE(我在这里假设是因为单词必须完全匹配)

将返回FALSE(与任何原因相同)

如果我想对照原始表中的每一项检查整个数据引用表,我将如何处理?

从玩耍中我可以做类似的事情

原始数据基本上是字符串,而参考数据是字符串。但是,当我运行这样的事情时,我收到消息:

我认为这与参考表的表大小与我运行比较的表不同这一事实有关。

样本数据:

0 投票
3 回答
1154 浏览

regex - 将数字与R中的文本分开

我有一些文字:

我想得到:

命令:

只返回400。

我想对 gsub 说:用相同的数字加上开头和结尾的空格替换您在文本中找到的每个数字。我怎样才能做到这一点?

0 投票
2 回答
903 浏览

regex - 使用 grepl 在 R 中进行模式匹配

我有一个dat这样的数据框

P pedigree cas 1 M rs2745406 T 2 M rs6939431 A 3 M SNP_DPB1_33156641 G 4 M SNP_DPB1_33156664_G P 5 M SNP_DPB1_33156664_A A 6 M SNP_DPB1_33156664_T A

我想排除列以 G、C、T 或 A ( )pedigree开头和结尾的所有行。在这种情况下,这将是第 4、5、6 行。SNP__[GCTA]

我怎样才能在 R 中实现这一点?我努力了

multisnp <- which(grepl("^SNP_*_[GCTA]$", dat$pedigree)=="TRUE")

new_dat <- dat[-multisnp,]

我的multisnp向量是空的,但我不知道如何修复它以匹配我想要的模式。我认为这是我的通配符*使用错误。