首页 文章

将加权调查保存为数据框架

提问于
浏览
1

我想分析一下过去使用SPSS软件进行分析的调查 . 调查有一个权重变量 . 在SPSS中,它很容易通过变量加权(使用'weight by'函数)但是我在使用R的时候遇到了问题 . 我使用Survay包来包含权重变量 . 我将在这里展示一个更简单的例子:

Data <- data.frame(
    X =c(1,4,6,4,1,7,3,2,2),
    Y = c(6,5,9,9,43,65,45,67,90),
    weight=c(0.1,1.2,4,0,0,5,0.65,1,0)
    )
    summary(Data )
  X               Y             weight

闵 . :1.000分钟:5.00分钟:0.000
1 Qu.:2.000 1st Qu . :9.00 1st Qu.:0.000
中位数:3.000中位数:43.00中位数:0.650
平均值:3.333平均值:37.67平均值:1.328
3 Qu.:4.000 3rd Qu.:65.00 3rd Qu.:1.200
最大 . :7.000最大 . :最高90.00 :5.000

library(survey)
    dat_weight=svydesign(ids = ~1, data = Data , weights = Data $weight)

现在我想将此对象(dat_weight)保存为一个简单的数据框,并将其用于其他分析(如PCA,CA等) . 可以吗?谢谢

1 回答

  • 0

    在我找到一个非常简单的解决方案之前,我遇到了同样的问题 . 您可以使用 save() 函数将R对象保存到扩展名为 .RData 的特定文件 . 完成后,您可以使用 load() 函数读回对象而不将其分配给任何内容,因为它会在您保存时分配给其原始名称 .

    请参阅以下示例:

    Data <- data.frame(
        X =c(1,4,6,4,1,7,3,2,2),
        Y = c(6,5,9,9,43,65,45,67,90),
        weight=c(0.1,1.2,4,0,0,5,0.65,1,0)
    )
    dat_weight <- survey::svydesign(ids = ~1, data = Data, weights = Data$weight)
    save(dat_weight, file = "~/weighted_data.RData")
    
    # clean environment
    rm(list = ls())
    load("~/weighted_data.RData")
    

    下次您不必对数据集应用权重,而是直接深入分析 .

相关问题