我想生成行列列總數的交叉表。我試圖用gmodels包生成交叉表。輸出的外觀比普通表格功能要好。桌子的外觀很重要,因爲最後必須使用Shiny來顯示。但問題是我在行和列的末尾獲得了列總數和行總數。我怎樣才能得到總列作爲表中的第一列和第一列。閃亮 - 以第一行/列生成列總數和行總數的交叉表
以下是我的數據示例。
Location <- sample(c("location A","location B","location C","location D","location E"),20,replace = T)
Brand <- sample(c("Brand A","Brand B","Brand C"),20,replace = T)
Year <- rep(c("Year 2014","Year 2015"),10)
Q1 <- sample(1:5,20,replace = T)
Q2 <- sample(1:5,20,replace = T)
mydata <- as.data.table(cbind(Location,Brand,Year,Q1,Q2))
數據很龐大,因此它是data.table。我使用用於產生交叉表
代碼爲 -
library("gmodels")
mydata[,CrossTable(Location,Brand,prop.c = T,prop.r = F,prop.t = F,prop.chisq = F,chisq = F,format = "SPSS")]
這給出了輸出,但總的列是列中的行和結束的結束。列的總數也缺少列%。我如何將總列作爲第一行和第一列,並且還有%?
建議出路。
你可能不想'cbind'在這裏。看看'str(mydata)'並注意到所有的cols都被強制爲字符串/字符類型。也許你想'reshape2 :: dcast(mydata,Location〜Brand,margin = TRUE)'在這裏? – Frank
既然'CrossTable'返回null,那麼你唯一的選擇就是根據你的需要修改它的源代碼。 –