我正在處理由多個問題(y1,y2,y3,...)的整數值響應和分配給每個應答者的加權計數組成的調查數據,如下所示:加權表格數據框與plyr
foo <- data.frame(wcount = c(10, 1, 2, 3), # weighted counts
y1 = sample(1:5, 4, replace=T), # numeric responses
y2 = sample(1:5, 4, replace=T), #
y3 = sample(1:5, 4, replace=T)) #
>foo
wcount y1 y2 y3
1 10 5 5 5
2 1 1 4 4
3 2 1 2 5
4 3 2 5 3
我想將其轉換爲加權表的統一數據框版本,第一列代表響應值,接下來的3列代表加權計數。
library(Hmisc)
ty1 <- wtd.table(foo$y1, foo$wcount)
ty2 <- wtd.table(foo$y2, foo$wcount)
ty3 <- wtd.table(foo$y3, foo$wcount)
bar <- merge(ty1, ty2, all=T, by="x")
bar <- merge(bar, ty3, all=T, by="x")
names(bar) <- c("x", "ty1", "ty2", "ty3")
bar[is.na(bar)]<-0
>bar
x ty1 ty2 ty3
1 1 3 0 0
2 2 3 2 0
3 3 0 0 3
4 4 0 1 1
5 5 10 13 12
我懷疑有與plyr和numcolwise或ddply這種自動化的方法:可以明確地列使用來完成。例如,以下內容即將結束,但我不確定還需要完成該任務:
library(plyr)
bar2 <- numcolwise(wtd.table)(foo[c("y1","y2","y3")], foo$wcount)
>bar2
y1 y2 y3
1 1, 2, 5 2, 4, 5 3, 4, 5
2 3, 3, 10 2, 1, 13 3, 1, 12
有什麼想法?
嗨,你正在使用什麼調查?這看起來像多重填補,需要'mitools' +'survey'包來獲得正確的置信區間。 – 2014-10-03 21:12:23
我正在與環境影響評估等美國住宅能源消費調查(RECS)合作。很高興看到有一個關於一切的包,謝謝參考! – Bryan 2014-10-04 00:38:42
這只是一個基於複製的調查。你試圖重新發明輪子......你將有一個更容易的時間[複製他們的官方方法](http://www.eia.gov/consumption/residential/methodology/2009/pdf/using-microdata- 022613.pdf)如果您使用調查軟件包。 :) – 2014-10-04 04:17:41