首页 > 解决方案 > dplyr 过滤器中的字符串检测导致评估错误

问题描述

我正在使用 R 和dplyr库对包含一列的字符 data.frame 执行字符串搜索。对两个字符串执行 AND 操作以对位置数据进行条件测试。我的dplyr::filter评价有误。

str(dec2013.data)
'data.frame':   10481 obs. of  1 variable:
 $ Routing.SYSID: chr  "L839ITSRLX001TGU3" "L839SMARLX001TGU3" 
"L839CRJRLX001TGU3" "L839BUARLX001TGU3"

dec2013.data.route1 <- data.frame()
dec2013.data.route1 <- dec2013.data %>% 
  filter(str_detect(Routing.SYSID,"L839" & 
  str_detect(Routing.SYSID,"TGU3")))

dput()
"L839CHHFNL626TGU3", "L839HPHFNL626TGU3", "L839NHBFNL626TGU3", 
"L839BMQFNL626TGU3", "L839JUCFNL626TGU3", "L839KJYFNL626TGU3", 
"L839KPPFNL626TGU3", "L839IWHFNL626TGU3", "L839NOFFNL626TGU3", 
"L839DXQFNL626TGU3", "L839TMUFNL626TGU3", "L839RGCFNL626TGU3"

filter_impl(.data, quo) 中的错误:评估错误:操作只能用于数字、逻辑或复杂类型。

标签: rdplyr

解决方案


你只是有错误的括号。这应该有效:

dec2013.data %>% 
    filter(str_detect(Routing.SYSID,"L839"), str_detect(Routing.SYSID,"TGU3"))

推荐阅读