我想分析过去用SPSS软件分析的调查。调查具有重量变量。
在spss中,很容易通过变量(带有"重量"功能),但是我在使用r。
的情况下有问题我使用surgay包包括重量变量。我将在这里显示一个更简单的示例:
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
Min. :1.000 Min. : 5.00 Min. :0.000
1st Qu.:2.000 1st Qu.: 9.00 1st Qu.:0.000
Median :3.000 Median :43.00 Median :0.650
Mean :3.333 Mean :37.67 Mean :1.328
3rd Qu.:4.000 3rd Qu.:65.00 3rd Qu.:1.200
Max. :7.000 Max. :90.00 Max. :5.000
library(survey)
dat_weight=svydesign(ids = ~1, data = Data , weights = Data $weight)
现在,我想将此对象(dat_weight)保存为简单的数据框架,并将其用于其他分析(例如PCA,CA等)。
可以完成吗?
我遇到了同样的问题,直到找到一个非常简单的解决方案。您可以使用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")
下次您不必在数据集上施加权重,而是直接潜入分析。