You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言中筛选包含独立键6的DataFrame行?

问题:筛选包含键6的DataFrame行

我有如下R语言的DataFrame:

situations <- c("{17: '', 80: '', 55: '693', 29: '', 103: '19', 233: '872', 6: '', 20: '', 230: '99.3', 215: '', 102: '47.7', 56: 'Center', 146: '85.1', 147: '40.6', 23: '', 231: '47.8'}", "{103: '1.9', 18: '', 154: '', 147: '48.6', 22: '', 233: '879', 76: '', 459: '', 55: '719', 29: '', 102: '54.2', 56: 'Center', 328: '', 146: '94.7', 20: ''}", "{215: '', 22: '', 56: 'Center', 233: '731', 103: '19', 78: '', 230: '97.7', 146: '78.2', 20: '', 102: '50.4', 29: '', 18: '', 55: '899', 147: '43.3', 82: '', 231: '48.7'}")

events <- c("A", "B", "C")

df <- data.frame(situations, events)

我想要筛选出包含键6(或6: '')的行,请问该如何操作?

我曾尝试用grepl来选择行,但结果不符合预期:

df$filter <- as.integer(grepl('6:', df$situations))

这段代码会保留所有包含数字6的行,比如包含76、146、56的行,并不是我需要的结果。

在Python中我可以用如下代码实现该功能,但在R中找不到类似方法:

df['is_ok'] = df['situations'].apply(lambda x: True if 6 in x else False)

解决方案

感谢@MrFlick,我找到了正确的实现方式:

as.integer(grepl('\\b6:', df$situations))

这里的\\b是正则表达式中的单词边界,它能确保我们匹配的是独立的6:,而不是其他数字中包含的6,比如76、146里的6,这样就能精准筛选出包含键6的行。

内容的提问来源于stack exchange,提问作者Delopera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 00:12:59