假设我在数据框/表格中有一些分析结果。 我希望将它们嵌入到文本文档中。
如果是 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
但答案建议将内容导出到分隔文件。我希望避免这一步。
如果它是一个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)
))
一种非常简单的方法是在文字处理器中使用等宽字体,例如 Courier New 或 Lucida Console(仅举几个例子)——如果它在 R 会话中的屏幕上看起来不错,那么它在Libre Office 的作家或文字。一旦采用合适的字体,从 R 控制台直接复制粘贴到文档就可以正常工作。
如果您想“重现 R 会话的外观”,这非常有效;如果您尝试格式化论文或类似文件的输出,它可能不太合适,具体取决于您的喜好。
如果您不介意使用中间文件来保存表格,您可以使用包中的函数
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。
如果要将 R 数据框复制到 Writer 或 Word,可以按照以下步骤操作:
将数据框转换为数据。
数据_df <- as.data.frame(data)
将数据保存为 CSV 文件:
write.csv(data_df [,6:7],“剪贴板”,行。名称= FALSE,引用= FALSE)
这里选择了第 6 列和第 7 列。