如何从剪贴板复制和粘贴数据到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