如何从剪贴板复制和粘贴数据到R中?

标题说明了一切:我的数据在另一个应用程序中打开(例如电子表格,如Excel或文本编辑器)。 如果我将这些数据复制到我的操作系统剪贴板,我怎样才能读取到R作为data.frame?

假设您在Windows剪贴板中有数据(例如,从Excel中复制数据),请将该数据放入名为copdat的variablesR中:

 copdat <- read.delim("clipboard") 

如果要将名为rdat的Rvariables的数据复制到Windows剪贴板(例如,复制到Excel),请使用:

 write.table(rdat, "clipboard", sep="\t", row.names=FALSE, col.names=FALSE) 

用于“剪贴板”的名称和确切连接取决于操作系统。

对于Windows:

 x <- read.delim("clipboard") 

对于Mac OS:

 x <- read.delim(pipe(“pbpaste”)) 

这是有效的,因为read.delim和许多函数一样,将接受一系列连接types,而不仅仅是一个文件。 对于Mac,我们实际上使用了一个pipe道。 help(connections)是非常丰富的。

心理包有一个函数read.clipboard() ,通过testing你的操作系统,使得这个更容易一些。

正如其他人在这里指出的,你也可以写入剪贴板。 通常有一个32 K的限制,这可以通过在剪贴板中添加连字符和数字来提高,例如,从对象df传递高达256 K的数据,其中:

 write.table(df, "clipboard-256") 

inputdata = as.numeric(read.table(text = "125 140 200 200 190 ", sep = " ")) ,其中你的数字在text = " "引号之间。

如果您想从电子表格中读取表格数据,我已经使用了下面的代码

 read.table(file = "clipboard", sep = "\t", header=TRUE) 

有一个名为datapasta的R包/ RStudio插件可以非常好地完成这个工作,请参阅https://CRAN.R-project.org/package=datapasta 。 下面的图片是其简单性的演示

在这里输入图像说明

我需要复制一个复合URL到Windows 剪贴板 ,而read.table()输出一个带有引号的字符向量在我的URL周围。 相反,我使用了package utils的 writeClipboard(URL,format=1) ,它实现了这个function。

查看文件的文档, Clipboard部分:

只能在模式“r”中使用描述=“剪贴板”的剪贴板文件。 这读取X11主要select(请参阅http://standards.freedesktop.org/clipboards-spec/clipboards-latest.txt ),也可以指定为“X11_primary”,次要select为“X11_secondary”。 在大多数系统中,剪贴板select(由“编辑”菜单中的“复制”使用)可以被指定为“X11_clipboard”。 当剪贴板打开阅读时,内容立即复制到连接的内部存储器中。 希望写入其中一个X11select的Unix用户可以通过xclip( http://sourceforge.net/projects/xclip/ )或xsel( http://www.vergenet.net/~conrad/software / xsel / ),例如通过pipe道(“xclip -i”,“w”)作为主要select。 macOS用户可以使用pipe(“pbpaste”)和pipe(“pbcopy”,“w”)来读写系统的剪贴板。

所以,例如与magrittr:

 base::file(description='clipboard') %>% readLines