我理解如何使用map迭代df中的参数并创建一个新的列表列.
例如,
params <- expand.grid(param_a = c(2, 4, 6)
,param_b = c(3, 6, 9)
,param_c = c(50, 100)
,param_d = c(1, 0)
)
df.preprocessed <- dplyr::as.tbl(params) %>%
dplyr::mutate(test_var = purrr::map(param_a, function(x){
rep(5, x)
}
))
Run Code Online (Sandbox Code Playgroud)
但是,如果我想指定2个以上的参数,如何在pmap中使用类似的语法?
df.preprocessed <- dplyr::as.tbl(params) %>%
dplyr::mutate(test_var = purrr::pmap(list(x = param_a
,y = param_b
,z = param_c
,u = param_d), function(x, y){
rep(5,x)*y
}
)
)
Run Code Online (Sandbox Code Playgroud)
错误输出:
mutate_impl(.data,dots)出错:评估错误:未使用的参数(z = .l [[c(3,i)]],u = .l [[c(4,i)]]).