【问题标题】:Extracting multiple conditions using stringr (r)使用 stringr (r) 提取多个条件
【发布时间】:2021-02-27 02:53:04
【问题描述】:

我正在尝试从一系列字符串中提取感兴趣的区域变量。我试图提取多个不同的感兴趣区域并将它们全部放入一个变量“ROI”中。但是,当我这样做时,我会得到一个无法导出的损坏数据框。是否有可以处理提取多个“或”语句的字符串函数?

谢谢,如果我能提供更多信息,请告诉我。


V2_MeanConcentration_LongFormat <- Visit2_concentration_df %>% 
  pivot_longer(-c("ID"),  names_to = "Name", values_to = "Values") %>% 
  mutate(Condition = str_extract(Name, regex("ThreatAngryFearful|Happy")),
         Chromophore = str_extract(Name, regex("HbO|HHb", ignore_case = TRUE)),
         Hemisphere = str_extract(Name, regex("Left|Right", ignore_case = TRUE)),
        ROI = str_extract(Name, regex("MPFC|STC|DLPFC|IFC|Parietal", ignore_case = TRUE))%>%  ##This is not working ###
           as.data.frame((c("ID", "Condition", "Chromophore","Hemisphere", "ROI", "Name", "Values"))))

【问题讨论】:

  • 您遇到的错误是什么
  • 我发现你的最后一个表达式是stri_extract而不是str_extract,它是一个字符串函数,其中regexregex = 而不是regex(
  • 您好,感谢您的帮助。这是错误消息警告消息:在 as.data.frame.vector(x, ..., nm = nm) 中:'row.names' 不是长度为 2736 的字符向量 - 忽略它。将是一个错误!
  • 当我尝试这一行时 - ROI = str_extract(Name, regex="MPFC|STC|DLPFC|IFC|Parietal", ignore_case = TRUE) - 我收到了这个错误:str_extract 中的错误(名称, regex = "MPFC|STC|DLPFC|IFC|Parietal",ignore_case = TRUE) :未使用的参数(regex = "MPFC|STC|DLPFC|IFC|Parietal",ignore_case = TRUE)。如果我误解了您的建议,请告诉我。
  • 能否请您更新您的帖子并提供一个可重复的小示例,以便其他人可以对其进行测试。谢谢

标签: r string stringr


【解决方案1】:

可能有点晚了,但我对来自stringr packagestr_count 函数有同样的问题。 str_extract 属于同一个包。正如 Akrun 所指出的,自然语言处理有不同的 R 包。

this post 借用多个模式可以用 OR 符号组合 --> | 。一个解决方案是:

newVar <- str_extract(DF$var, 'pattern1 | pattern2 | pattern3')

在您的情况下,由于使用了属于stringipackage 的regex() function 而出现了问题。 regex() 仅用于不区分大小写的搜索和其他复杂搜索。


不了解有关数据的更多信息以及实现它所需的内容是很难提供帮助的。

【讨论】:

    猜你喜欢
    • 2018-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-28
    相关资源
    最近更新 更多