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

时间:2014-07-11 18:37:42

标签: r excel copy rstudio

我有一个与此question完全相似的问题。

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

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

4 个答案:

答案 0 :(得分:31)

这很简单。

首先,您必须在Rstudio的Viewer窗格中可视化您的数据(您可以使用函数View()),然后您应该从最后一个值开始选择到第一个值,它是从下到上(见图)。请注意,应完全选择第一个单元格。最后,右键单击选择,复制,然后根据需要将其粘贴到Excel中,无论是否有格式。

enter image description here

祝你好运!

更新:

基于此Post,其他选择是制作新功能,通过data.frameclipboard复制到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:)

答案 1 :(得分:9)

我通常会提供以下功能:

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(使用我的EU语言环境)。您可能需要调整分隔符/小数符号才能使其适用于美国版本。

使用方法:

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

答案 2 :(得分:8)

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

对于小数据帧,使用RStudio的View(data.frame)函数,如果只复制没有标题的数据,它可以正常工作,但是如果要复制标题,则必须先将其粘贴到记事本中以添加至少一个左上方空单元格的字符。

对于大型数据框架,请使用write.csvwrite.xls(来自包WriteXLS

答案 3 :(得分:6)

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

clipr::write_clip(my_df)

来源here