【问题标题】:Copy and paste data frame - from R! to Writer/Word复制和粘贴数据框 - 来自 R!给作家/字
【发布时间】:2015-08-24 09:37:18
【问题描述】:

假设我在数据框/表中有一些分析结果。 我希望将它们嵌入到文本文档中。

如果是 LaTeX,我可以使用 miscFuncs 包:

library('miscFuncs')
latextable(myDataFrame)

只需复制 R 控制台中显示的输出并将其粘贴到 LaTeX 文档。

如果我想从 R 复制怎么办!输出并粘贴到 LibreOffice Writer 或 MS Word 文档?

我认为最(?)方便的方法是将输出生成为制表符分隔的文本。 粘贴文本后,只需将它们转换为表格即可。

我知道有些函数可以将输出写入制表符分隔的文件: http://www.instantr.com/2012/12/11/exporting-a-dataset-from-r/

所以我猜肯定有函数/包可以简单地生成制表符分隔的内容?


注意 - 有类似的问题: https://stats.stackexchange.com/questions/90184/can-i-copy-output-from-r-to-word-or-excel

但答案建议将内容导出到分隔文件。我希望避免这一步。

【问题讨论】:

  • 在“类似问题”的答案write.csv(df, "clipboard", row.names = FALSE) 中以分隔形式将答案导出到剪贴板,而不是磁盘文件。您可以从剪贴板直接粘贴到 MS Word 中——我大多数时候都是这样做的。
  • 这对我来说似乎是最合适的答案。

标签: r


【解决方案1】:

如果是data.frame,对我来说最简单的方法是在knitr 包中使用kable(),然后从控制台复制粘贴到电子表格

library(dplyr) # just to use the handy %>%
matrix(c(1:20), 5) %>% # some data
  as.data.frame() %>% # as it is a matrix, I need it as data.frame
  knitr::kable() # It is now tabulated, you can use in your Office software "convert text to table"

我你不喜欢%>%,

knitr::kable(
  as.data.frame(
    matrix(c(1:20), 5)
))

【讨论】:

    【解决方案2】:

    一种非常简单的方法是在您的文字处理器中简单地使用等宽字体,例如 Courier New 或 Lucida Console(举几个例子)——如果它在您的 R 会话中的屏幕上看起来不错,它看起来会非常在 Libre Office 的 Writer 或 Word 中类似。一旦使用合适的字体,从 R 控制台直接复制粘贴到文档就可以正常工作。

    如果您尝试“重现”R 会话的外观,这非常有效;如果您尝试为论文或其他格式设置输出格式,则可能不太合适,具体取决于您的偏好。

    【讨论】:

      【解决方案3】:

      如果您不介意使用中间文件来保存表格,您可以使用包中的函数 flextable (https://davidgohel.github.io/flextable/index.html)。

      重复:

      library(flextable)
      # create a flextable object
      ft <- flextable::flextable(data = head(iris))
      # save it as a .docx file on your disk
      flextable::save_as_docx(ft, path = "./test.docx")
      # or pop-up a word window with your table
      print(ft, preview ="docx") # from https://github.com/davidgohel/flextable/issues/117#issuecomment-487126438
      

      输出:

      现在您可以将此表格复制/粘贴到您的主文档中。请注意,您可以使用 flextable 进行大量自定义,并将表格保存为不同的输出格式,例如 HTML 甚至 .pptx。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-01-20
        • 1970-01-01
        • 1970-01-01
        • 2018-12-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多