我有一个包含两个相关列的数据框:名称,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)的列表。 我收到错误消息。
答案 0 :(得分:0)
已解决,参数说明存在问题。