【问题标题】:How to merge multiple data frame into one table and export to Excel?如何将多个数据框合并到一个表中并导出到 Excel?
【发布时间】:2015-12-02 08:31:09
【问题描述】:

我想将几个数据框合并到一个表中,然后导出到 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

【问题讨论】:

  • 你最好的策略是使用write.csv将两个df分别导出到csv,然后在excel中合并。在 R 中合并这种数据是一团糟。
  • 我之前将它们导出到 excel,将两个 df 放在单独的工作表中。你的意思是导出到两个不同的csv文件吗?或者是否可以导出到一个 csv 文件,只需在同一张表中的第一个 df 下方添加第二个 df ?我在这里的主要目的是导出到同一张表。谢谢
  • 只需从 dplyr 中查看 join()

标签: r excel


【解决方案1】:

那怎么样?

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()

【讨论】:

    【解决方案2】:

    我知道有两个 EXCEL 导入/导出 R 包,它们都可以让您定义开始写入 data.frame 的左上角单元格以及是否使用标题。

    在您的情况下,我会将标签、计数、百分比、性别、agegp 作为单个值写入单元格中,然后将具有行名但没有列名的两个 data.frames 写入正确的位置。

    请参阅这两个包的小插图,了解如何打开/创建用于写入的 EXCEL 文件以及用于写入 data.frames 的函数。

    【讨论】:

      猜你喜欢
      • 2015-11-27
      • 1970-01-01
      • 2019-06-27
      • 2020-08-26
      • 1970-01-01
      • 1970-01-01
      • 2019-08-25
      • 1970-01-01
      • 2017-12-02
      相关资源
      最近更新 更多