【发布时间】:2021-01-05 14:20:40
【问题描述】:
目标:以更有效的方式(例如函数)计算多个子组加权比例。需要对所有组合中的两个变量(var1,var2)进行子集化,并计算结果的加权比例(var3)。在 R 中工作(但 python 解决方案也很受欢迎)。
代表:
# Reprex
library(dplyr)
library(weights)
df <- data.frame(
var1 = c(1, 1, 1, 2, 1, 2, 1, 2, 2, 1),
var2 = c(1, 2, 2, 3, 3, 3, 2, 1, 2, 2),
var3 = c("A", "B", "A", "A", "A", "B", "A", "B", "A", "A"),
weight = rnorm(10)
)
# sub1
sub <- filter(df, var1 == 1 & var2 == 3)
round(weights::wpct(sub$var3, weight = sub$weight), digits = 2)
# sub2
sub <- filter(df, var1 == 2)
round(weights::wpct(sub$var3, weight = sub$weight), digits = 2)
# sub3
sub <- filter(df, var2 == 2)
round(weights::wpct(sub$var3, weight = sub$weight), digits = 2)
# Looking for more efficient way to continue subgroups (with more vars and combinations)
【问题讨论】: