我正在使用包str_match中的stringr内容来捕获括号之间的文本。
library(stringr)
strs = c("P5P (abcde) + P5P (fghij)", "Glcext (abcdef)")
str_match(strs, "\\(([a-z]+)\\)")
Run Code Online (Sandbox Code Playgroud)
只给我匹配"abcde"和"abcdef"。如何"fghij"在仍然对两个字符串使用相同的正则表达式的情况下捕获?
我使用 R 进行网页抓取,并且有一个脚本可以复制链接的文本,然后使用该字符串通过 RSelenium 跟踪链接。不幸的是,当我运行脚本时,这似乎不适用于某个特定字符串,但是当我用手动输入的字符串替换保存的字符串时,它工作正常。稍微深入研究一下页面的 html 就会发现其中一个空格字符实际上是一个字符,这就是字符串无法匹配的原因。如何在 R 中替换为普通空格?我尝试使用 stringr 库和 str_replace 命令,如下所示:
var1 <- str_replace(var1, pattern = " ", " ")
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用。我明显做错了什么吗?有没有办法让 R 显示一个字符串,其中所有奇怪的格式字符都可见?
library(stringr)
words <- c("proposition", "proper", "poor", "paul", "park", "car")
words[str_detect(words, "^p")]
[1] "proposition" "proper" "poor" "paul" "park"
words[str_detect(words, "r$")]
[1] "proper" "poor" "car"
Run Code Online (Sandbox Code Playgroud)
我已经大大缩减了作业的数据。
我想检测以 p 开头并以 r 结尾的单词。我期待结果是正确的和糟糕的。我现在正在为一项作业花费几个小时来解决这个问题。
words[str_detect(words, "[^p][r$]")]
Run Code Online (Sandbox Code Playgroud)
无论位置如何,都会得出单词中带有 p 和 r 的任何内容。
words[str_detect(words, "^pr$")]
Run Code Online (Sandbox Code Playgroud)
这东西直接说是不行的。它不匹配任何内容,但没有抛出错误。我不明白为什么它不会抛出错误。我首先认为它与单词 ^pr$ 匹配,但这不需要转义“\”吗?
我有以下文件的列表
a_file.csv
another_file.csv
a_third_file.csv
我想编写一个函数,该函数paste仅包含之前的文本_file.csv,因此上面的字符串将是。
a
another
a_third
我怎样才能做到这一点stringr?
我有一个类似的字符串word_string。我想要的是Word_String。str_to_title如果我使用from 的函数stringr,我得到的是Word_string. 它不将第二个单词大写。
有谁知道有什么优雅的方式来实现这一点吗stringr?谢谢!
我正在尝试转换我的数据,以便它可以绘制在地图上。例如,数据如下所示:
# A tibble: 2 x 2
Latitud Longitud
<chr> <chr>
1 10º 35' 28.98'' N 3º 41' 33.91'' O
2 10º 35' 12.63'' N 3º 45' 46.22'' O
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用以下方法对其进行变异:
df %>%
mutate(
Latitud = str_replace_all(Latitud, "''", ""),
lat_edit = sp::char2dms(Latitud), "°")
Run Code Online (Sandbox Code Playgroud)
返回和错误:
Error in if (any(abs(object@deg) > 90)) return("abs(degree) > 90") :
missing value where TRUE/FALSE needed
In addition: Warning message:
In asMethod(object) : NAs introduced by coercion
Run Code Online (Sandbox Code Playgroud)
我想在 ggplot (或其他空间包)的地图上绘制这两个点
数据:
structure(list(Latitud = c("40º 25' 25.98'' N", "40º …Run Code Online (Sandbox Code Playgroud) 我们如何使 stringr 函数(例如str_replace)将参数视为字符串文字而不是正则表达式,而无需手动转义特殊字符?
转义特殊字符按预期工作
"dsfj?lddkfj" %>% str_replace("\\?ld", "AAA")
[1] "dsfjAAAdkfj"
Run Code Online (Sandbox Code Playgroud)
但如果我们不转义特殊字符,stringr函数会将 视为pattern正则表达式。在这种情况下我们会得到一个错误。
"dsfj?lddkfj" %>% str_replace("?ld", "AAA")
Run Code Online (Sandbox Code Playgroud)
是否有一些标准方法可以强制 stringr 函数将模式视为字符串文字(无需手动转义特殊字符)?
我可以看到perl = T是用于该功能的选项sub()
我试过
> str_replace("abcdef", c("b", "d"), c(b="B", d="D"))
[1] "aBcdef" "abcDef"
Run Code Online (Sandbox Code Playgroud)
希望
[1] "aBcDef"
Run Code Online (Sandbox Code Playgroud)
我们如何用一个特定的替换来替换每个模式,并调用一个函数stringr::str_replace?
我有一个导入 R 的评论列表。以下是一些评论如何导入的示例 -
9. This is some string number 1
9This is some string number 2
9 This is some string number 3
9-This is some string number 4
67-68 This is some string number 5
Run Code Online (Sandbox Code Playgroud)
注意我将评论保存到一个名为 some_str
我的目标是在行首打印出没有数字的每一行。像这样 -
This is some string number 1
This is some string number 2
This is some string number 3
This is some string number 4
This is some string number 5
Run Code Online (Sandbox Code Playgroud)
我使用下面的代码来处理9. This is some string number 1上面的第一行 …
我正在尝试对文本数据库执行以下搜索。
这是示例数据库,df
df <- data.frame(
id = c(1, 2, 3, 4, 5, 6),
name = c("john doe", "carol jones", "jimmy smith",
"jenny ruiz", "joey jones", "tim brown"),
place = c("reno nevada", "poland maine", "warsaw poland",
"trenton new jersey", "brooklyn new york", "atlanta georgia")
)
Run Code Online (Sandbox Code Playgroud)
我有一个字符串向量,其中包含我要查找的术语。
new_search <- c("poland", "jones")
Run Code Online (Sandbox Code Playgroud)
我将向量传递给 str_detect 以在 df 的任何列中查找 new_search 中的任何字符串,然后返回匹配的行...
df %>%
filter_all(any_vars(str_detect(., paste(new_search, collapse = "|"))))
Run Code Online (Sandbox Code Playgroud)
问题...如何将 str_detect 的结果提取到新列中?
对于返回的每一行......我想生成一个成功匹配的术语列表并将它们放入列表或字符向量(matched_terms)......像这样......
id name place matched_terms
1 2 carol jones poland maine c("jones", "poland")
2 …Run Code Online (Sandbox Code Playgroud)