r - 在 R 中根据之前的特定单词和之后的 % 符号提取字符串或值
问题描述
我有一个包含数千行段落的文本列,我想提取“ Capacity > x%
”的值。操作符号可以是>,<,=, ~...
我基本上需要操作符号和整数值(例如<40%)并将其放在它旁边的列中,同一行。我已经尝试过,删除之前/之后的文本,,,gsub, grep
等grepl, string_extract
。没有一个很好的结果。我不确定百分比符号是否在抛出它,或者我只是没有得到代码结构。感谢您的帮助。这是我尝试过的一些代码(aa 是 df,TEXT 是 col 名称):
str_extract(string =aa$TEXT, pattern = perl("(?<=LVEF).*(?=%)"))
gsub(".*[Capacity]([^.]+)[%].*", "\\1", aa$TEXT)
genXtract(aa$TEXT, "Capacity", "%")
gsub("%.*$", "%", aa$TEXT)
grep("^Capacity.*%$",aa$TEXT)
解决方案
由于您没有提供可重现的示例,因此我自己创建了一个并在此处使用它。
我们可以使用sub
提取"Capacity"
直到一个数字和%
符号之后的所有内容。
sub(".*Capacity(.*\\d+%).*", "\\1", aa$TEXT)
#[1] " > 10%" " < 40%" " ~ 230%"
或与str_extract
stringr::str_extract(aa$TEXT, "(?<=Capacity).*\\d+%")
数据
aa <- data.frame(TEXT = c("This is a temp text, Capacity > 10%",
"This is a temp text, Capacity < 40%",
"Capacity ~ 230% more text ahead"), stringsAsFactors = FALSE)
推荐阅读
- amazon-web-services - AWS AppSync - 放大代码生成类型而不创建任何内容
- azure - 在哪里可以找到 azure 身份范围及其权限级别的列表?
- r - R 编程:“[[k]][1:nrow(my_data)]”在我的建模函数中做了什么?寻找对 R 代码的更多理解
- javascript - 如何使用其中的文本大小调整 div 宽度
- java - 如何在 javafx 中实现可调整性?
- django - 将 Django 连接到 Microsoft SQL 数据库
- sql - 是否可以在 plpgsql 中编写 time_bucket_gapfill 替代方案
- reactjs - 没有正文的 axios 发布请求到达没有标头的服务器
- angular - 在 Firebase 上检索子索引
- python - 为什么我不断收到 ValueError:Python 中的数学域错误?