相关疑难解决方法(0)

在mutate中使用purrr :: pmap创建list-column

我理解如何使用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)]]).

r dplyr purrr

11
推荐指数
2
解决办法
2628
查看次数

标签 统计

dplyr ×1

purrr ×1

r ×1