相对加权频率/比例(dplyr)
我试图找到一种dplyr方法,在数据加权的地方制作一个相对表或比例。我在阅读dplyr中的相对频率/比例,其中一个答案在data.table中相对加权频率/比例(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
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
您希望看到什么?