データ型が混在する関数があります。データフレームと文字列変数を入力パラメータとして受け取ります。Purrrマップのパラメータとしてデータフレームと不均一なベクトルを渡す方法
library(dplyr)
myfunc <- function (dat=NULL,species=NULL,sepal_thres=NULL) {
dat %>%
filter(Species==species & Sepal.Length <= sepal_thres)
}
myfunc(dat=iris,species="virginica",sepal_thres=5)
#> Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#> 1 4.9 2.5 4.5 1.7 virginica
しかし、私はこのエラーを得たベクトル
species_vecs <- c("virginica","setosa")
sepal_thres_vecs <- c(5, 6)
purrr::pmap(list(dat=iris, species=species_vecs, sepal_thres=sepal_thres_vecs), myfunc)
のリストでそれを適用したい:
Error: Element 2 has length 2, not 1 or 5.
それを行うための正しい方法は何ですか? species
とsepal_tres
パラメータは、この組み合わせから取られ
ないこと:パラメータとして
> expand.grid(species_vecs,sepal_thres_vecs) %>% rename(species=Var1, sepal_thres=Var2)
species sepal_thres
1 virginica 5
2 setosa 5
3 virginica 6
4 setosa 6
しかしdat
が固定されています。