复制并粘贴数据框 - 从 R!致作家/文字

问题描述 投票:0回答:4

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

如果是 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

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

r
4个回答
1
投票

如果它是一个data.frame,对我来说最简单的方法是在

kable()
包中使用
knitr
,然后从控制台复制粘贴到电子表格

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

0
投票

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

如果您想“重现 R 会话的外观”,这非常有效;如果您尝试格式化论文或类似文件的输出,它可能不太合适,具体取决于您的喜好。


0
投票

如果您不介意使用中间文件来保存表格,您可以使用包中的函数

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。


0
投票

如果要将 R 数据框复制到 Writer 或 Word,可以按照以下步骤操作:

  1. 将数据框转换为数据。

    数据_df <- as.data.frame(data)

  2. 将数据保存为 CSV 文件:

    write.csv(data_df [,6:7],“剪贴板”,行。名称= FALSE,引用= FALSE)

这里选择了第 6 列和第 7 列。

  1. 将数据粘贴到 Excel 中。在 Excel 中,使用“粘贴为值”选项粘贴数据。
  2. 选择第一列并单击“数据”选项卡,然后选择“文本到列”。 按照以下步骤,您可以顺利地将数据从 Excel 传输到 Word。
© www.soinside.com 2019 - 2024. All rights reserved.