如何将多个数据框合并到一个表中并导出到Excel?

问题描述:

我想合并几个数据框到一个表中,并导出到Excel。数据框如下生成。如何将多个数据框合并到一个表中并导出到Excel?

sex <- c("male","female") 
count1 <- c(304,410) 
df.sex <- data.frame(sex,count1) 
df.sex[,"per"] <- df.sex$count1/sum(df.sex$count1) 

agegp <- c("<=24","25-29","30-34","35-39") 
count2 <- c(204,250,125,135) 
df.agegp <- data.frame(agegp,count2) 
df.agegp[,"per"] <- df.agegp$count2/sum(df.agegp$count2) 

df.sex 
sex count1  per 
male 304 0.4257703 
female 410 0.5742297 

df.agegp 
agegp count2  per 
<=24 204 0.2857143 
25-29 250 0.3501401 
30-34 125 0.1750700 
35-39 135 0.1890756 

由于两个DF的第一列是不同的,我不能rbind他们并导出到Excel。

我想生成一个像下面这样的表格并将其导出到Excel。

任何人都可以帮忙吗?

 count percentage 
sex  
male 304  0.4257703 
female 410  0.5742297 
agegp  
<=24 204  0.2857143 
25-29 250  0.3501401 
30-34 125  0.1750700 
35-39 135  0.1890756 
+1

您的最佳策略是使用'write.csv'将这两个df分别导出到csv,然后在excel中合并。将这种数据合并到R中是一团糟。 – mts

+0

我以前将它们导出为ex​​cel,将两个df放在单独的工作表中。你的意思是出口到两个不同的CSV文件?或者可以导出到一个CSV文件,只需在同一张表中的第一个df下添加第二个DF?我的主要目的是导出到同一张表。谢谢 – cyrusjan

+0

只是从dplyr看join() – MLavoie

那怎么样?

sink(file = "mergedPrinting.csv") 

cat("First Frame:\n") 
write.csv(df.agegp, row.names = F) 

cat("--------\n") 

cat("Second Frame:\n") 
write.csv(df.sex, row.names = F) 

sink() 

enter image description here

有两个EXCEL导入/导出R-包我知道的,都让你定义左上角的单元格,在其中开始写你的data.frame和羯羊使用的标题。

在你的情况我会写标签,计数,百分比,性别,agegp,单值进入细胞,然后写两个data.frames与rownames,但没有列名到正确的位置。

关于如何打开/创建用于写入的EXCEL文件和用于写入data.frames的函数,请参阅这两个包的晕影。