将加权变量应用于R中的整个调查数据集

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

我有一个调查的大数据集。我已经有一个列/变量,其权重应该应用于整个数据集。这可以通过SPSS轻松实现,但是我也想在R中做到这一点。我已经知道了如何将权重变量应用于像这样的单个列:

gend <- wtd.table(master.data$Q10_GENDER, weights = master.data$Weight_Age_Gender_Income)

这对于一个变量非常有用,但是我讨厌必须对我运行的每个命令都执行该操作。有没有一种方法可以应用于整个数据集?

我将外部数据库的较大子集简化为一个简单的三变量DF,我想将一个预先计算的权重变量应用于整个DF。

test <- data.frame(br$Q10_GENDER, 
               br$Q5B_URBANICITY, 
               br$S4_AGE_GROUP_1)

br$Weight_Age_Gender_Income

摘要输出:

     br.Q10_GENDER                br.Q5B_URBANICITY br.S4_AGE_GROUP_1
 Female:4986   Urban, city center      :8791    18-24  :3048     
 Male  :4893   Suburbs surrounding city: 827    25-29  :1664     
 Other :  44   Rural                   : 305    30-34  :1218     
                                                35-39  : 954     
                                                40-44  : 806     
                                                13-17  : 763     
                                                (Other):1470 
r survey weighting
1个回答
0
投票

这可能是一个长镜头,目前尚不清楚您的数据是什么样子。

library(dplyr)

set.seed(123)

df <- data.frame(v1 = runif(4),
              v2 = c(1, 2, 2, 1),
              v3 = 1:4,
              wgt = c(0.1, 0.5, 1, 2))


df %>% mutate_at(vars(v1:v3), function(x) .$wgt * x)

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