此代码采用数据帧并将prettyNum-Function应用于每个列:
test <- mtcars %>% map_df(., ~prettyNum(.,big.mark = ".", decimal.mark = ","))
不,我想选择赋予函数的列,但我无法理解代码必须如何。这是我最好的猜测:
test <- mtcars %>% map_df(., ~mutate_at(.vars = vars(drat,wt), .funs = prettyNum(.,big.mark = ".", decimal.mark = ",")))
如何让第二个代码正常工作?
答案 0 :(得分:0)
无需使用purrr::map_df
执行此任务:
dplyr::mutate_all(mtcars, prettyNum, big.mark = ".", decimal.mark = ",")
dplyr::mutate_at(mtcars, .vars = vars(drat, wt), prettyNum, big.mark = ".", decimal.mark = ",")
以上操作无效,因为purrr
适用于列表。数据帧是大小相等的矢量列表。使用purrr::map_df
将您的数据框分开并将向量传递给dplyr::mutate_at
,但是需要数据帧。这也是它在第一个例子中起作用的原因:prettyNum
需要你提供的向量。