被“没有适用于“ character”类对象的“ filter_”的适用方法”所困扰

时间:2019-07-19 20:21:35

标签: lapply tidy

我有一个包含两个相关列的数据框:名称,id

我有一个正则表达式列表,我想将它们与名称列中的值进行匹配,并在同一行上返回id值。

如果我传递一个值,它会起作用,但是当我尝试lapply时,会出现此错误:

UseMethod(“ filter_”)中的错误:   没有适用于“过滤器”的适用于“字符”类对象的方法

id <- c(1:10)

name <- c("a_able", "b_baker", "c_charlie", "d_delta", "e_echo", "f_foxtrot", "g_golf", "h_hotel", "i_indigo", "j_juliet")

t <- tibble(id, name)

prefix <- c("^c_", "^f_", "^g_")

matchingName <- function(tibbleName, pattern){
       return(tibbleName %>% filter(str_detect(name, pattern)) %>% select(id))
}

matchingName(t, prefix[1])
# A tibble: 1 x 1
       id
    <int>
1       3

lapply(prefix, matchingName, t)
Error in UseMethod("filter_") : 
   no applicable method for 'filter_' applied to an object of class "character"
Called from: filter_(.data, .dots = compat_as_lazy_dots(...))

我希望获得ID(3,6,7)的列表。 我收到错误消息。

1 个答案:

答案 0 :(得分:0)

已解决,参数说明存在问题。