[英]How to plot weighted survey data and export weighted data from R to SPSS?
我有一個名為weight
的加權變量的調查數據,我想在我的數據集上使用它。 不幸的是, survey
package 並沒有像我想的那樣工作。 我最終需要的是
有沒有辦法可以工作? 即使有 package survey
的解決方案也可以,因為我沒有目標但仍然無法讓它發揮作用。
我知道有一些關於權重問題的帖子,但我找不到適合我的問題的解決方案。 謝謝你的幫助。
# create data
surveydata <- as.data.frame(replicate(1,sample(0:1,1000,rep=TRUE)))
# change values of columns
surveydata$V1 <- (replicate(1,sample(c(0.5,1,1.5),1000,rep=TRUE)))
surveydata$V2 <- as.factor(sample(3, size = nrow(surveydata), replace = TRUE))
levels(surveydata$V2)[levels(surveydata$V2)=="1"] <- "a"
levels(surveydata$V2)[levels(surveydata$V2)=="2"] <- "b"
levels(surveydata$V2)[levels(surveydata$V2)=="3"] <- "c"
# rename columns
colnames(surveydata)[1] <- "weight"
colnames(surveydata)[2] <- "variable"
使用比例而不是百分比
> library(survey)
> des<-svydesign(id=~1, weights=~weight,data=surveydata)
> barplot(svymean(~variable,des))
使用百分比最簡單的方法可能是使用svytable()
,它有一個用於縮放總計的參數:下面的代碼顯示總計、比例和百分比
> svytable(~variable,des)
variable
a b c
320.5 365.5 331.5
> svytable(~variable,des,Ntotal=1)
variable
a b c
0.3149877 0.3592138 0.3257985
> svytable(~variable,des,Ntotal=100)
variable
a b c
31.49877 35.92138 32.57985
所以
barplot(svytable(~variable,des,Ntotal=100),col="orange",ylab="%")
要將數據傳輸到 SPSS,我會使用write.foreign()
,它會生成一個純文本數據文件和一個 SPSS 代碼文件來讀取它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.