首页 > 解决方案 > 在列可能不同的数据帧的每一行上使用 purrr::pmap

问题描述

  df <- tibble::tribble(  ~sev_curve, ~curve_type,  ~trend_date, ~weight,
                          "MILO",  'HOSPITALS',   '7/1/2020',      0.4,
                          'ALSO',  'PHYSICIANSC', '7/1/2020',      0.6)

df %>% mutate(c=purrr::pmap(df, function(#how to reference columns?) {...}))

所以我需要使用 purrr::map 在上述数据帧的每一行上应用一个函数。但是,肯定只有 sev_curve 和 weight 列存在。其他 2 列可能存在也可能不存在,并且可能有其他列可以代替它们,等等。

标签: rpmap

解决方案


我们可以使用 or 以标准方式使用和select删除列-one_of

library(dplyr)
library(purrr)
df %>%
     mutate(new = pmap_int(select(., -sev_curve, -weight), ~ n_distinct(c(...))))

推荐阅读