簡體   English   中英

如何將 plot 加權調查數據和加權數據從 R 導出到 SPSS?

[英]How to plot weighted survey data and export weighted data from R to SPSS?

我有一個名為weight的加權變量的調查數據,我想在我的數據集上使用它。 不幸的是, survey package 並沒有像我想的那樣工作。 我最終需要的是

  1. plot 一個(條形)圖表(在 y 軸上具有分布的百分比),它考慮了權重但保持因子的水平(在 x 軸上)。
  2. 以某種方式將加權數據集導出到 SPSS。

有沒有辦法可以工作? 即使有 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM