r - 正则表达式忽略中间字符串
问题描述
我有数据框 dat1。有什么方法可以使用 str_extract() 和正则表达式从 colnames(dat1) 中仅提取“red white 40 R”?我计划稍后使用 facet_wrap 绘制它们,但无法提取我想要的文本。对于我的实际代码,R# 将始终在字符串中,但是,留给 R# 的所有内容都可以改变。str_extract() 之后的预期输出应该是 txt。
dat1 <- data.frame(c(1,2,3,4), c(10, 20, 30, 40),
c(100, 200, 300, 400), c(1000, 2000, 3000, 4000))
colnames(dat1) <- c("red G white 40 R3", "red G white 40 R5",
"red H white 40 R7", "red H white 40 R10")
txt <- c("red white 40 R", "red white 40 R", "red white 40 R", "red white 40 R")
解决方案
这实际上取决于您的边缘情况。例如,您可以使用sub("(red ).* (white 40 R).*", "\\1\\2", colnames(dat1))
,但您也可以colnames(dat1) <- rep("red white 40 R", ncol(dat1))
在那时写。
你想保留的话会改变吗?号码?也许你想要更强大的东西:
sub("(\\w+).*?(\\w+ \\d+ \\d).*", "\\1\\2", colnames(dat1))
如果我们不知道您所需代码的完整用例,就很难提供帮助。
推荐阅读
- neo4j - 在不复制现有关系的情况下更新 neo4j 关系属性
- linux - git clone 自带编辑过的文件
- mysql - Sequal Pro Connect 数据库 SSH 密钥对问题(尝试重置)
- vlc - VLC:将流保存到文件
- javascript - 用本地 json 文件填充 Tabulator 表
- c# - 在登录到 Blazor Server .Net Core 5 站点时在哪里设置会话变量?
- mysql - 简单插入到我们的 mysql8 安装中非常慢
- linux - 当我将 esp 移入 ebp 时,我在程序集中遇到分段错误(核心转储),我该如何解决这个问题?
- django - 如何在 django 的 html 页面中添加表单
- php - WordPress:将两个循环与不同数量的帖子结合起来