将 R data.frame 复制到 Excel 电子表格

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

我有一个与这个问题完全相同的问题。

作为我工作的一部分,我必须将 R Studio 控制台的输出复制到 Excel 工作表才能制作 Excel 图表。但是,R Studio 控制台使用格式化文本,excel 的读取效果不太好。作为补偿,我总是从 R Studio 控制台复制,粘贴到记事本中,然后复制到 Excel 中。这样,当我粘贴表格时,我可以告诉 Excel 它实际上是固定宽度分隔的数据,而不仅仅是一堆文本。

如何从 R Studio 控制台复制输出,以便将其作为未格式化文本放入剪贴板,以便我可以将其直接粘贴到 Excel 中,从而将数字组织到不同的单元格中?这将非常有帮助,因为我不喜欢将表格复制/粘贴到记事本中,然后用 Excel 制作图表。

r excel copy
4个回答
66
投票

它的工作原理很简单。

首先,您必须在Rstudio的查看器窗格中可视化您的数据(您可以使用功能

View()
),然后您应该开始从最后一个值到第一个值进行选择,从下到上(见图)。请注意,应完全选择第一个单元格。最后,右键单击所选内容,复制,然后根据需要将其粘贴到 Excel 中,带或不带格式。

enter image description here

祝你好运!

更新:

基于此Post,另一种选择是创建一个新功能,通过

data.frame
将您的
clipboard
复制到Excel:

write.excel <- function(x,row.names=FALSE,col.names=TRUE,...) {
  write.table(x,"clipboard",sep="\t",row.names=row.names,col.names=col.names,...)
}

write.excel(my.df)

最后在 Excel 中按 Ctr+V :)


54
投票

这是迄今为止我发现的最简单的方法:

clipr::write_clip(my_df)

来源这里


21
投票

我通常会获取以下函数:

cb <- function(df, sep="\t", dec=",", max.size=(200*1000)){
    # Copy a data.frame to clipboard
    write.table(df, paste0("clipboard-", formatC(max.size, format="f", digits=0)), sep=sep, row.names=FALSE, dec=dec)
  }

一些注意事项:

  • Max.size 允许您指定剪贴板在取消之前可以变成多大(以千字节为单位),目前设置为 ~200MB。
  • 它非常适合将 R 数据帧从 R studio 会话复制到 Excel(使用我的欧盟区域设置)。您可能需要调整分隔符/小数点符号才能使其适用于美国版本。

使用方法:

df <- mtcars
cb(df)
# Paste in excel as 'values'

8
投票

根据我的经验,没有方便的方法,我使用两种方法:

对于小型数据框,使用 RStudio 的

View(data.frame)
功能,如果您仅复制没有标题的数据,则效果很好,但如果您想复制带有标题的数据,则必须先将其粘贴到记事本中,以在顶部添加至少一个字符留下空单元格。

对于大型数据框,请使用

write.csv
write.xls
(来自包
WriteXLS

© www.soinside.com 2019 - 2024. All rights reserved.