从R出口应急表的最有效的方法是优秀的

我正在R中创build一些应急表/交叉表,我想移动到Excel中以便在Word文档中使用。 我已经find了如何编写excel的几个问题的讨论 – 如何将R的多元预测结果 导出 为excel 将数据从R导出到excel 。 但是,应急表的格式(使用基本R或者像descr或gmodels这样的软件包)似乎并不能很好地转换成Excel。

我已经提出了自己的解决scheme,它产生了我想要的,但是我想知道是否有更有效的方法,例如我忽略的一个包。

library(xlsx) test.data <- as.data.frame(matrix(sample.int(2,size = 10*2, TRUE), nrow = 10, ncol = 2)) out1 <- table(test.data$V1, test.data$V2) out.p <- prop.table(out1,2) out.d <- as.data.frame.matrix(out1) out.pd <- round(as.data.frame.matrix(out.p),2) colnames(out.d) <- c("No", "Yes") colnames(out.pd) <- c("No", "Yes") out.d1 <- paste(out.d$No, " (",out.pd$No,")",sep="") out.d2 <- paste(out.d$Yes," (",out.pd$Yes,")", sep="") out2 <- cbind(out.d1,out.d2) toadd.r <- c("No","Yes") out2 <- cbind(toadd.r,out2) sig <- unlist(summary(table(test.data$V1,test.data$V2))) sig <- rep(round(sig[6],2),nrow(out2)) out2 <- cbind(out2, sig) colnames(out2) <- c("Outcome","No","Yes","sig") write.xlsx(out2, file ="Output.xlsx", sheetName = "Test1") 

我正在R中创build一些应急表/交叉表,我想移动到Excel中以便在Word文档中使用。

如果你的最终目的是出口到MS Word,你应该考虑使用ReporteRs包。

以您的数据为例,您可以使用下面的代码直接在MS Word中创build表格。

 library(ReporteRs) mydoc <- docx() mydoc <- addFlexTable(mydoc, flextable = FlexTable(out2)) writeDoc(mydoc, file = "example.docx") 

结果

你将会在MS Word中获得一个不错的表格。 导出表


方面

FlexTable对象为您提供了很多选项来调整格式和表示。

带有选项的示例弹性表 来源: ReporteRs的例子 。

如何简单

 write.csv(out2, "myContingencyTable.csv") 

我一直无法find一个软件包,从R输出丰富格式的列联表到Excel,因此一直在做一个包:

Github回购在这里和文档在这里 。

你可以使用以下命令安装它: devtools::install_github("moj-analytical-services/xltabr")

在你的用例中,你需要运行下面的代码:

 df <- data.frame(out2) wb <- xltabr::auto_df_to_wb(df, left_header_colnames = "Outcome") openxlsx::openXL(wb) 

这将在Excel中产生以下输出:

在这里输入图像描述