【发布时间】:2020-04-10 05:09:40
【问题描述】:
当我将输入变量作为数据框输入时,我编写了一个运行良好的函数。但是当我想使用 pmap 将输入作为数据框列表输入时,我收到以下错误:
Error in UseMethod("filter_") : no applicable method for 'filter_' applied to an object of class "character"
这是导致错误的函数的数据和第一部分,我在此处未显示的部分函数中使用了 y 和 a 参数:
x <- tibble::tibble(x1 = sample(0:1, 8, replace = TRUE),
x2 = sample(0:25, 8, replace = FALSE),
x3 = sample(1:3, 8, replace = TRUE),
strata =c("a", "b", "c", "d", "a", "b", "c", "d"))
y <- tibble::tibble(rate = sample(0:1, 8, replace = TRUE),
strata =c("a", "b", "c", "d", "a", "b", "c", "d") )
a <- tibble::tibble(sample(10:80, 4, replace = FALSE))
example <- function(x, y, a , d){
CR <- x %>% filter(x1, x2>0) %>%
group_by(x3) %>%
summarise(avg_revenue = mean(x2), revenue = sum(x2))
return(CR)
}
example(x,y,a, d = 0.1)
但是当我在这个函数上调用 pmap 时:
df <- tibble::tibble(x = x %>% group_by(strata) %>% nest(),
y = y %>% group_by(strata) %>% nest(),
a = a)
pmap(df, example, d= 0.1)
我得到了上面提到的错误。
【问题讨论】:
-
您能否提供一个最小可重现示例的数据? (stackoverflow.com/help/minimal-reproducible-example)
-
感谢您的提示,我已经更新了代码,以便可以重现错误。