问题标签 [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.
regex - 用 grepl 替换解析的正则表达式
目标是解析正则表达式并替换匹配的模式。
考虑这个例子:
我必须找到所有出现的cat
和一个数字[0-9]
。去做这个:
下一步是将 的每个元素替换为found
string cat
。根据堆栈问题 20219311 ,我尝试了包 (gsubfn) 中的gsub、sub和gsubfn() :
这不是预期的结果:
我想我错过了一点。我会很感激我能得到的任何帮助。谢谢。
regex - 仅替换已解析的正则表达式
这个问题类似于 Stack question Regular expression parsed with grepl replacement。
目标是解析正则表达式并仅替换匹配的模式。这个例子:
要解析感兴趣的匹配项cat
:
理想的结果会替换所有出现的cat
with chicken
:
知道如何实现这一目标吗?多谢你们。
r - 在 R 中,为每一行找到包含字符串的列
我一定是在考虑错误的搜索词,因为我不敢相信我的问题是独一无二的,但我只找到了一个类似的问题。
我有一些来自世界银行的相当笨重的数据,它是一个代表数据库的平面文件。数据是每行一个项目,但每个项目都有多个特征,这些特征方便地在名称为“SECTOR.1”的列中,在其他名称为“SECTOR.1.PCT”等的列中具有自己的特征。
从中,我试图提取与特定类型的 SECTOR 相关的数据,但我仍然需要拥有所有其他项目信息。
我已经能够朝着正确的方向迈出一些步骤,从我在 SO 上找到的另一个问题:Find the index of the column in data frame that contains the string as value
根据上面的问题说明,一个最小的可重现示例在这里:
我想要的输出是这样的:
我知道我可以做一个 ifelse,但这似乎不是一个非常优雅的方法。当然,因为这是我只会做 1 次的事情(对于这个项目),错别字的风险很小。例如,
我认为如果我有某种可以逐行查看列的应用函数会更好。上一个问题中的方法不适用于这个问题,因为我需要知道哪一列有“c”。除了列出带有“c”的列名之外,我得到了一些没有意义的东西。我不明白 1,3,4 因为它不对应于行名或计数:
而且,如果我尝试按行执行,我确实看到每一行都有一个“c”,正如预期的那样。
ALSO -> 我想知道是否有一种方法可以解决这个问题,如果一行中有多个列中有“c”,例如,如果我们有:
然后我的 ifelse 方法失败了,因为它只为 row5 提供了“col1”。
r - 识别满足两个条件的唯一观测值,然后删除 R
我有一个 df 如下:
我想做两件事。首先,计算同时具有苹果和橙子的独特观察的数量(即 2 玛丽和约翰)。
然后在那之后,我想从我的数据框中删除它们,这样我就只剩下只有苹果的独特个人了。
这是我尝试过的
真的,我想使用 grepl 因为我的真实数据比水果复杂一点。这是我尝试过的(首先转换为data.table)
所以,总而言之,我的问题在于识别同时拥有苹果和橙子的人。这看起来很简单,所以请随时将我引导到可以教我这个的资源!
期望的输出
r - 使用模式列表对新字段进行编码
我想使用表达式列表来编码一个新字段。
在我的数据框中,Bisaccategory1 包含对图书类别的完整描述。表示该字段中部分值的特定字符串可用于定义称为“流派”的新字段。一种特殊的类型是“非小说”,它映射到 25 个独特的完整描述。我可以通过指定其中包含的某些模式来识别这些完整描述:
然后我可以匹配这些字符串以完成 Biscategory1 值,如下所示:
但我不清楚如何使用这些“匹配”将值“非小说”分配给我的新类型字段。
这是样本数据:
我知道我可以做类似的事情:
但我有数百个类别,这并不是真正可扩展的。我会很感激任何建议。
r - 过滤行,R中的因素
嗨,大家好,
V2是一列,因子分类。
我正在尝试过滤以下内容,但我得到 0 个值:
奇怪的是,这有效:
但我特别想要而MSFT
不是MSFTXXX
等等MSFT
谢谢 :)
r - R:将列表中的每个字符串与另一个列表匹配,同时返回相邻值
这是我可以在 Excel 中轻松完成的事情。但我被 R 弄糊涂了。
我想将国家名称分配给一长串字符串(“隶属关系”)。
在每个字符串中可能是也可能不是引用位置的子字符串,该位置本身可能引用国家/地区。预期的输出是一个数据帧,如下所示:
“matchedCountry”旨在根据多个列表(大学、英国城市、美国各州等)进行评估,并且允许使用 NA。有些列表只返回 ISO 代码。
根据迄今为止的反馈(感谢@rbm),我已经管理了一个很好的解决方案(见答案部分)。也就是说,我确信性能仍然可以提高。谢谢。
参考:
r - 从 2 个变量中解析正则表达式 grep
目的是折叠/重新分配级别作为清理数据集的一部分。
这是示例:
兴趣水平是cat
; 这些是条目:
从那里开始,我们的想法是在 中搜索一个属性V2
,nice
在该属性上,该级别cat
将被重命名为nice cat
。此搜索找到 2 个感兴趣的条目V2
:
理想的最终结果将df
转变为:
任何想法如何实现这一目标?非常感谢。
r - grepl 并粘贴以获取字符向量,其中元素以逗号分隔
我正在尝试将year.f1990
我生成的一些时间虚拟对象(例如)包含到一个命令(eba
来自 ExtremeBounds 包)中,该命令接受形式为 `c("variable1","variable2","variable3") 的向量,因此字符串由逗号。我无法为我的时间假人生成这样的向量。拿:
所以我想要和元素一模一样c("year.f1","year.f2")
我设法得到了c("year.f1,year.f2")
这c("year.f1" "year.f2")
两个命令:
但这些都不是我所需要的。第一个错过了单个元素周围的引号,第二个错过了逗号。我想用逗号分隔,每个元素都用“...”框起来。任何帮助,将不胜感激!
ps:来自以下评论:
这个:
应该像这样工作:
regex - 部分字符串匹配与新列中的匹配正则表达式 - R
我试图用一串正则表达式部分匹配数据集中列的内容。然后,我想匹配在新列中返回特定匹配正则表达式的行。我的实际数据集很大(130 万行),包含 300 个正则表达式,因此找到一种自动执行此操作的方法很重要,因此添加新的正则表达式不需要代码调整。
展示:
在这种情况下,如果一个正则表达式是“ly”,我希望在匹配行(部分,完全)中有一个带有“ly”的列,而在其他行中有一些“不匹配”的术语。我已经成功地使用 grepl (不基于精确匹配的子集)成功地对数据进行了子集化,这非常有效,但这是我真的在努力的下一步!
我在尝试这个方面取得了一些进展,主要是基于我已经适应的这个代码建议(部分字符串匹配 R ):
正如你所看到的,这会在匹配的行旁边返回一个“1”——到达那里但我已经没有想法了!我想知道是否有人可以提供任何指示?
谢谢!