0
我必須編寫一個報表,其中交叉表是基於另一個表的頻率排序的。
library(descr)
X <- c(rep('Anthony', 6), rep('Marcelo', 4), rep('Luiz', 3), rep('Lind', 2), rep('Cesar', 1), rep('Outros', 6), rep('Ninguém', 6), rep('NS/NR', 6))
PESO <- rep(1, length(X))
REG <- sample(c('R1','R2','R3','R4'), length(X), replace=T)
bd <- data.frame(X, PESO, REG)
perc <- (round(freq(bd$X, w=bd$PESO, plot=F), digits=0))
perc <- perc[rownames(perc)!="NA's" & rownames(perc)!='NR' & rownames(perc)!='Total',]
perc <- perc[,-1]
ns <- perc[names(perc)=='NS/NR']
ni <- perc[names(perc)=="Ninguém"]
ou <- perc[names(perc)=="Outros"]
perc <- data.frame('%'=sort(perc[names(perc)!='NS/NR' & names(perc)!="Ninguém" & names(perc)!="Outros"], decreasing=T))
perc <- rbind(perc,ou,ni,ns)
rownames(perc)[rownames(perc)==6 | rownames(perc)==7 | rownames(perc)==8] <- c('Outros', 'Ninguém', 'NS/NR')
perc <- rbind(perc, Total=100, Base=dim(bd)[1])
結果是
X.
Anthony 18
Marcelo 12
Luiz 9
Lind 6
Cesar 3
Outros 18
Ninguém 18
NS/NR 18
Total 100
Base 34
現在,當我運行代碼來跨越這個變量,一個又一個,我得到
tab <- round(rbind(prop.table(xtabs(PESO~X+REG, bd),margin=2)*100))
ns <- tab[rownames(tab)=='NS/NR',]
ni <- tab[rownames(tab)=="Ninguém",]
ou <- tab[rownames(tab)=="Outros",]
tab <- tab[rownames(tab)!='NS/NR' & rownames(tab)!="Ninguém" & rownames(tab)!="Outros",]
tab <- tab[order(tab[,1], decreasing=T),]
perc <- rbind(tab,ou,ni,ns,Total=100,Base=apply(xtabs(PESO~X+REG, bd), 2, sum))
rownames(perc)[rownames(perc)=='ou' | rownames(perc)=='ni' | rownames(perc)=='ns'] <- c('Outros', 'Ninguém', 'NS/NR')
perc <- perc[,colnames(perc)!='Total']
:我使用下面的代碼建立第一個表
結果是
R1 R2 R3 R4
Anthony 17 14 25 11
Luiz 17 14 0 11
Marcelo 17 0 17 11
Cesar 0 0 0 11
Lind 0 0 17 0
Outros 0 43 17 11
Ninguém 33 14 17 11
NS/NR 17 14 8 33
Total 100 100 100 100
Base 6 7 12 9
我想讓這個表具有與第一個相同的順序。喜歡的東西:
R1 R2 R3 R4
Anthony 17 14 25 11
Marcelo 17 0 17 11
Luiz 17 14 0 11
Lind 0 0 17 0
Cesar 0 0 0 11
Outros 0 43 17 11
Ninguém 33 14 17 11
NS/NR 17 14 8 33
Total 100 100 100 100
Base 6 7 12 9
請增加軟件包依賴項,部分代碼不能運行。 'freq錯誤(bd $ X,w = bd $ PESO,plot = F):' – CCurtis
此代碼的'xtable'部分不是重現問題所必需的。請保留它,但包括必要的對象。 – Hugh
請讓您的問題具有可重現性。 http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example –