【发布时间】:2021-03-22 05:22:20
【问题描述】:
我想用purrr:map2 将两个向量输入到我的自定义函数中。不幸的是,当我这样做时,我收到错误 Error: Problem with `filter()` input `..2`. x Input `..2` must be of size 93 or 1, not size 9. ℹ Input `..2` is `!is.na(y)`.
如何让我的自定义函数将参数用作数据并使用 map2 成功运行?
这是一个 MWE:
library(MASS)
data(Cars93)
crosstab_3way_custom <- function(y, z) {
pollster::crosstab_3way(Cars93,
x = Origin,
y= {{ y }},
z = {{ z }},
weight = rep(1, NROW(Cars93)),
pct_type = "row")
}
combos <- expand.grid(c("Manufacturer", "Model", "Type"), c("Min.Price", "Price", "Max.Price"))
combos <- combos %>% map(as.character)
map2(combos[1], combos[2], function(y,z) crosstab_3way_custom(y,z))
【问题讨论】:
-
是
Cars93来自MASS包吗?对于一个没有map的例子,你如何运行这个?crosstab_3way(df = MASS::Cars93, x = Origin, y = Manufacturer,z = Min.Price)这会返回一个错误。 -
我没有意识到需要权重。我刚刚添加了一些,它现在应该适用于个别情况。是的,Cars93 来自 MASS 包。