如何获得带比例的加权频率表?

问题描述 投票:0回答:2

我正在处理一个包含后分层权重的数据集,我正在寻找一种方法来获取有关特定变量的更多信息,但我正在努力。

这是一个示例数据框:

a <- c(1, 3, 2, 1, 2, 2, 3, 3, 1, 3, NA, NA)
wght <- c(0.8, 0.9, 1.2, 1.5, 0.5, 1, 0.7, 0.9, 0.8, 1.1, 1, 0.8)
df <- data.frame(a, wght)

a 列包含对问题的编码回答(比如

agree
/
neutral
/
disagree
),
wght
包含权重。我找到了一种显示加权观察次数的方法:

library(magrittr)
df %>% dplyr::count(a, wt=wght)

我现在想从

freq
包中获取有关此发行版的信息(特别是百分比和有效百分比)。我尝试了各种方法,例如以下,但它产生了一个奇怪的频率表。
descr


来自
r weighted frequency-table
2个回答
2
投票

freq
使用如下:
{descr}



1
投票
df$a <- factor(df$a, levels = c(1, 2, 3), labels = c("agree", "neutral", "disagree")) descr::freq(df$a, df$wght, plot = FALSE) # df$a # Frequency Percent Valid Percent # agree 3.1 27.68 32.98 # neutral 2.7 24.11 28.72 # disagree 3.6 32.14 38.30 # NA's 1.8 16.07 # Total 11.2 100.00 100.00

并转换

xtabs
,这样您就不需要加载包了。然后只是
as.data.frame
cbind
。有效百分比是在没有
proportions
s 的情况下计算的。
NA


资料:

tbl <- as.data.frame(xtabs(wght ~ a, df, addNA=TRUE)) cbind(tbl, perc=proportions(tbl$Freq)*100, valid_perc=c(proportions(na.omit(tbl)$Freq), NA)*100) # a Freq perc valid_perc # 1 1 3.1 27.67857 32.97872 # 2 2 2.7 24.10714 28.72340 # 3 3 3.6 32.14286 38.29787 # 4 <NA> 1.8 16.07143 NA

© www.soinside.com 2019 - 2024. All rights reserved.