我想生成行列列总数的交叉表。我试图用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,那么你唯一的选择就是根据你的需要修改它的源代码。 –