我想比較兩個問題(列Q1_b
和Q2_b
)並將它們彼此相鄰(在相同的barplot中),答案選項爲1-6。問題是沒有人用4回答Q1_b
,所以barplot跳到顯示5,其中4應該是Q1_b
,旁邊是Q2_b
回答4的人的百分比。我如何確保R不執行此操作並在沒有任何特定選項的答案時自動輸入0%列?如何避免與0頻率下降水平
alldataset<-structure(list(Q1_b = c(6L, 1L, 5L, 3L, 5L, 6L, 6L, 2L),
Q2_b = c(1L, 2L, 2L, 5L, 4L, 3L, 6L, 1L)),
.Names = c("Q1_b", "Q2_b"),
class = "data.frame",
row.names = c(NA, -8L))
Qb<-table(alldataset$Q2_b)
Qf<-table(alldataset$Q1_b)
nrowFUP<-NROW(alldataset$Q1_b)
nrowBL<-NROW(alldataset$Q2_b)
options(digits=6)
newbl <- transform(as.data.frame(table(alldataset$Q2_b)),
percentage_column=Freq/nrowBL*100)
newfup <- transform(as.data.frame(table(alldataset$Q1_b)),
percentage_column=Freq/nrowFUP*100)
matrixQ1<-cbind(newbl$percentage_column, newfup$percentage_column)
matrixQ1dataframe<-data.frame(matrixQ1)
rmatrixQ1<-as.vector(t(matrixQ1dataframe))
roundedrmatrix<-round(rmatrixQ1, digits=0)
barplotmatrix<-matrix(roundedrmatrix)
par(mar=c(7.5,4,3,2), mgp=c(2,.7,0), tck=-.01, las=1, xpd=TRUE)
b<-barplot(matrix(roundedrmatrix, nr=2),
beside=T, xlab="",
ylab="Percentage",
cex.lab=0.9,
main="Comparison",
cex.main=0.9, ylim=c(0,70),
col=c("black","yellow"),
names.arg=c(1:6),
legend=c("Q2_b","Q1_b"),
args.legend=list(x="bottomleft",
cex=0.8,
inset=c(0.4,-0.4)))
text(x=b, y=roundedrmatrix,labels=roundedrmatrix, pos=3, cex=0.8)
R還警告我,這將通過顯示發生:
Warning message:
In cbind(newbl$percentage_column, newfup$percentage_column) :
number of rows of result is not a multiple of vector length (arg 2)
我一直在試圖爲年齡來排序了這一點,但我沒有得到任何地方。誰能幫忙?
我用這種形式'alldataset <數據 - data.frame(Q1_b = C(26,1,5,3 ,5,6,6,2),Q2_b = c(1,2,2,5,4,3,6,1))',它對我沒有任何錯誤。你可以輸入(alldataset)'幷包含結果嗎? – MattBagg
@MattBagg dput(alldataset)的結果是: 結構(列表(Q1_b = c(6L,1L,5L,3L,5L,6L,6L,2L),Q2_b = c(1L, 2L,2L,5L ,4L,3L,6L,1L)),.Names = c(「Q1_b」,「Q2_b」),class =「data.frame」,row.names = c(NA, -8L)) – user1844747