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

我有一个和这个问题完全类似的问题 。

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

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

它使用一个简单的技巧。

首先,您必须在Rstudio的“查看器”窗格中可视化您的数据(您可以使用View()函数),然后您应该从最后一个值开始select,从底部到顶部(请参阅图像)。 请注意,应该完全select第一个单元格。 最后,右键单击所选内容,复制,然后将其粘贴到Excel中,可以使用或不使用格式。

在这里输入图像说明

祝你好运!

更新:

基于这篇文章 ,另一种select是制作一个新的function,通过clipboard复制你的data.frame到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) 

和最后Ctr + V在Excel中:)

从我的经验来看,没有方便的办法,我用了两种方法:

对于小dataframe,使用RStudio的View(data.frame)函数,如果你只复制没有头文件的数据,它可以正常工作,但是如果你想复制头文件,那么你必须首先将它粘贴到记事本中,以便至less添加一个字符左上angular的空单元格。

对于大dataframe,使用write.csvwrite.xls (从WriteXLS包)

我通常会获得以下function:

 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数据框复制到Excel(使用我的EU语言环境)。 您可能必须调整分隔符/十进制符号,以使其适用于美国版本。

如何使用:

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