Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正则表达式和ID';s在R_R_Regex - Fatal编程技术网

正则表达式和ID';s在R

正则表达式和ID';s在R,r,regex,R,Regex,假设我有这样一个数据示例: ID文本 23名患者可能患有糖尿病 他今天不得不去看医生 92他提到了可能的糖尿病 83名患者可能患有糖尿病 她告诉我们她的家族史 我想找到写有“可能”或“可能”糖尿病的文本,但我想返回ID列表及其匹配文本。在本例中,我希望返回以下数据集: ID文本 23名患者可能患有糖尿病 92他提到了可能的糖尿病 试试: 库(dplyr) 图书馆(stringr) df%>%过滤器(str|u detect(文本,“可能|可能”)) #>一个tibble:2x2 #>ID文本

假设我有这样一个数据示例:

ID文本
23名患者可能患有糖尿病
他今天不得不去看医生
92他提到了可能的糖尿病
83名患者可能患有糖尿病
她告诉我们她的家族史
我想找到写有“可能”或“可能”糖尿病的文本,但我想返回ID列表及其匹配文本。在本例中,我希望返回以下数据集:

ID文本
23名患者可能患有糖尿病
92他提到了可能的糖尿病
试试:

库(dplyr)
图书馆(stringr)
df%>%过滤器(str|u detect(文本,“可能|可能”))
#>一个tibble:2x2
#>ID文本
#>                                       
#>123名患者可能患有糖尿病
#>2 92他提到了可能的糖尿病
数据
库(TIBLE)
df您可以尝试:

^.*?(?:probable|possible).*
对上述正则表达式的解释:

  • ^
    -表示行的开始
  • *?
    -延迟地匹配除新行以外的所有内容零次或多次
  • (?:或然|可能)
    -表示与单词
    或然
    可能
    匹配的非捕获组
  • *
    -贪婪地匹配除新行以外的所有内容零次或多次

带底端R:

df=read.table(text=“ID text
23“患者有可能患糖尿病”
78“他今天不得不去看医生”
92“他提到了可能的糖尿病”
83“患者可能患有糖尿病”
45“她告诉了我们她的家族史”,header=TRUE)
df[(grep(‘可能的|可能的’,df$Text)),]
#>ID文本
#>123名患者可能患有糖尿病
#>3 92他提到了可能的糖尿病

请添加您尝试过的内容?我还没有真正尝试过任何内容。我是R新手,通常使用SAS进行常规表达为什么
\d+
?上述示例中没有数字问题中的文本显示为空白分隔行。实际上,在R中,我们知道它们可能作为两个独立的列位于数据帧中。所以我认为这应该是在TSV文件或其他文件中,但不是在R数据帧中,这是一个完全不同的列。列是不同的。记下另外两个给出的解决方案。
library(tibble)

df <- tribble(
~ID, ~Text,
23, "Patient has a probable chance of diabetes",
78, "He had to go to the doctor today",
92, "He mentioned possible diabetes",
83, "Patient likely has diabetes",
45, "She told us about her family history")

^.*?(?:probable|possible).*