【发布时间】:2019-01-14 16:16:19
【问题描述】:
我正在尝试搜索一个数据框以匹配一个字符串,我从一个充满注释的列中创建了一个对象。
举个例子:
我正在寻找任何可能匹配注释的行
mph_words<-c(">10", "> 10", ">20", "> 20")
而一行代码可能类似于:
> lc_notes[1703]
[1] "collected 1.667 man-hr total. mostly cloudy, windy with gusts >20 mph."
如您所见,一些注释在“”和数字之间有空格,因此使用 strsplit 进行搜索并不理想,因为我确实需要保留“数字。
我试过了
> mph_words %in% lc_notes[2000]
[1] FALSE FALSE FALSE FALSE
> pmatch(mph_words, lc_notes[1703])
[1] NA NA NA NA
grepl(lc_notes[1703],mph_words)
[1] FALSE FALSE FALSE FALSE
> str_detect(mph_words,lc_notes[1703])
[1] FALSE FALSE FALSE FALSE
> for (word in 1:length(mph_words)){
+ print(str_extract(mph_words[word],lc_notes[1703]))
+ }
[1] NA
[1] NA
[1] NA
[1] NA
我不确定接下来要尝试什么。如果它是一个正则表达式,你可以在你的答案中解释它吗?我试图更好地理解正则表达式。
编辑 我正在尝试打印出在 mph_words 中具有特定字符之一的行。因此,代码将搜索我的 lc_notes 中的每一行并打印第 1703 行。
提前谢谢你!
【问题讨论】:
-
感谢大家的快速帮助,更重要的是代码解释! @G5W -- 感谢所有编辑,但保留 # 很重要,因为 mph 的值对于代码的下一部分很重要。
-
@nate 谢谢!我应该更好地澄清(仍在学习如何提问)但是 lc_notes 在 ">"/"
标签: r string string-matching