我在R中创建了一些列联表/交叉表,我想将其移到Excel中以便在Word文档中使用。我已经找到了关于如何在几个问题中写出excel的讨论 - How to export multivariate forecast results from R to excel Export data from R to excel。但是列联表的格式(使用基本R或descr或gmodels等包)似乎不能很好地转换为Excel。
我提出了自己的解决方案,它产生了我想要的东西,但我想知道是否有更有效的方法,例如一个我忽略的包裹。
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")
答案 0 :(得分:2)
我在R中创建了一些我想要的列联表/交叉表 移到Excel以在Word文档中使用。
如果您的最终目的是导出到MS Word,则应考虑使用ReporteRs
包。
在您的数据示例中,您可以使用以下代码直接在MS Word中创建表格。
library(ReporteRs)
mydoc <- docx()
mydoc <- addFlexTable(mydoc, flextable = FlexTable(out2))
writeDoc(mydoc, file = "example.docx")
FlexTable对象为您提供了很多调整格式和演示文稿的选项。
来源: ReporteRs examples。
答案 1 :(得分:1)
我一直无法找到一个从R输出格式繁多的列联表到Excel的程序包,因此一直在处理这样做的程序包:
您可以使用以下方法安装它:
df <- data.frame(out2)
wb <- xltabr::auto_df_to_wb(df, left_header_colnames = "Outcome")
openxlsx::openXL(wb)
在您的用例中,您需要运行以下代码:
{{1}}
哪个会在Excel中产生以下输出:
答案 2 :(得分:0)
如何简单地
write.csv(out2, "myContingencyTable.csv")