【发布时间】:2023-03-19 06:17:01
【问题描述】:
我想分析过去使用 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
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 等)。
可以吗?
【问题讨论】:
-
dat1和dat_weight喜欢什么?也许你应该使用str函数来看看。 -
你能让这个例子重现吗?你更有可能通过这种方式获得帮助。见:stackoverflow.com/questions/5963269/…
-
现在好点了吗?
-
你试过
weighted.mean基本函数吗?另外,我不确定您实际上要做什么。你能不能temp <- summary(dat_weight) -
我想对此数据框执行 PCA 分析,但我不知道如何通过变量“权重”对观察结果进行加权并将其保存为数据框。 svydesign 函数创建了一个“survey.design”类,不能转换为数据框