相对加权频率/比例(dplyr)

相对加权频率/比例(dplyr),r,dplyr,R,Dplyr,我试图找到一种dplyr方法,在数据加权的地方制作一个相对表或比例。我在阅读dplyr中的相对频率/比例,其中一个答案在data.table中 library("data.table") cars_dt <- as.data.table(mtcars) cars_dt[, .(n = .N), keyby = .(am, gear)][, freq := prop.table(n) , by = "am"] 库(“data.table”) 一位同事给了我答案 library(survey

我试图找到一种dplyr方法,在数据加权的地方制作一个相对表或比例。我在阅读dplyr中的相对频率/比例,其中一个答案在data.table中

library("data.table")
cars_dt <- as.data.table(mtcars)
cars_dt[, .(n = .N), keyby = .(am, gear)][, freq := prop.table(n) , by = "am"]
库(“data.table”)

一位同事给了我答案

library(survey)
# load data
data(api)

x <- apistrat

## data.tab
x <- data.table::data.table(x)

#unweighted proportion of share of schools meeting target by being year round
x[ , .(p = .N) , keyby = .(comp.imp, yr.rnd)][ , .(comp.imp, per = p/sum(p)) , by = yr.rnd ]
   yr.rnd comp.imp       per
1:     No       No 0.4413408
2:     No      Yes 0.5586592
3:    Yes       No 0.2380952
4:    Yes      Yes 0.7619048
# weighted (weight is pw)
x[ , .(p = sum(pw)) , keyby = .(comp.imp, yr.rnd)][ , .(comp.imp, per = p/sum(p)) , by = yr.rnd ]
   yr.rnd comp.imp       per
1:     No       No 0.3677785
2:     No      Yes 0.6322215
3:    Yes       No 0.1973814
4:    Yes      Yes 0.8026186

## dplyr

x %>% group_by(yr.rnd) %>% count(comp.imp , wt = pw) %>% mutate(per = n/sum(n))
# A tibble: 4 x 4
# Groups:   yr.rnd [2]
  yr.rnd comp.imp     n   per
  <fct>  <fct>    <dbl> <dbl>
1 No     No       1965. 0.368
2 No     Yes      3378. 0.632
3 Yes    No        168. 0.197
4 Yes    Yes       684. 0.803
图书馆(调查)
#加载数据
数据(api)
x%计数(复合imp,wt=pw)%>%突变(per=n/和(n))
#一个tibble:4x4
#组别:年注册日[2]
年度注册公司进口数量/年
1号1965。0.368
2不,是3378。0.632
3是不是168。0.197
是的,是的。0.803

您希望看到什么?