【发布时间】:2020-09-14 15:51:13
【问题描述】:
我想将所有数字列除以一个公因子,在每个行子集中使用不同的因子。
一个有代表性的例子是 iris 数据集,如果我想将每个 Species 的所有数字列除以不同的因子,例如
- Setosa by 1
- 10 倍的杂色
- 弗吉尼亚州 100
尝试拆分然后合并 - 提供因素列表;按组拆分 iris 数据帧的数据集列表,映射两个输入,然后重新组合 - 但我无法正确映射
map_dfr(list(1,10,100), ~
iris %>%
group_split(Species) %>%
mutate(across(where(is.numeric), ~x / .x)))
Error in UseMethod("mutate_") :
no applicable method for 'mutate_' applied to an object of class "c('vctrs_list_of', 'vctrs_vctr', 'list')"
或者对两个列表输入使用map2:
map2(x = iris %>% group_split(Species),
y = list(1,10,100),
function(x,y)
mutate(across(where(is.numeric), .x / .y)))
Error: unexpected ')' in " mutate(across(where(is.numeric), .x / .y)))"
【问题讨论】:
标签: r dictionary dplyr purrr