【发布时间】:2020-09-01 10:45:43
【问题描述】:
给定一个分组的 data.frame 和一个 list,其中包含引用每个组的另一个特征的总数(第 1 组为 70,第 2 组为 90):
group <- c(1,1,1,1,2,2,2,2,2)
n<- c(2,4,10,2,4,5,2,8,9)
df <- data.frame(group, n) %>%
group_by(group)
mylist <- list(70, 90)
如何在data.frame 中添加一个新列,以反映mylist 中每个n 的比例对于n/mylist[[i]]*100 给出的相应组?
我曾考虑过使用map_dbl 来迭代列表元素,但是,我无法理解如何在mutate(类似于df %>% mutate ("Percent" = n / map_dbl (mylist, .)*100))中调用这些命令,最终进行百分比计算它看起来像这样:
df$percent %>% c (2.9, 5.7, 14.3, 2.9, 4.4, 5.6, 2.2., 8.9, 10.0)
df
调用list 元素以将它们包含在计算中的优雅方法是什么?
【问题讨论】:
-
你的目标是什么?您是否试图让百分比列表示整个 n 列的百分比或组内的百分比。无论哪种方式,您的预期输出加起来都不会达到 100%。
-
没错,这些只是一些随机数据,指的是真实df的一小部分。对我来说重要的部分是获得一个功能性解决方案来进行百分比计算。