我试图用write.table功能写信给我一个Mac OS系统剪贴板上。 从其他线程,我试过
data <- rbind(c(1,1,2,3), c(1,1, 3, 4), c(1,4,6,7))
clip <- pipe("pbcopy", "w")
write.table(data, file="clip")
close(clip)
此代码不会给出任何错误消息,但也什么都不复制到剪贴板。 有什么建议?
Answer 1:
我没有任何机器在OS X下进行测试,但我认为你应该使用刚刚clip
,而不是"clip"
:
data <- rbind(c(1,1,2,3), c(1,1, 3, 4), c(1,4,6,7))
clip <- pipe("pbcopy", "w")
write.table(data, file=clip)
close(clip)
这里clip
是R对象。
如果你传递一个字符串“夹”的file
参数R将认为它是一个文件名,而不是在剪贴板中找到你的数据,你会发现一个文件在你[R被称为“夹”会议工作目录里面的数据。
Answer 2:
您可以使用Kmisc
包,它包含剪贴板I / O(读/写)的MULT iplatform 2种功能。
data <- data.frame(x1 = c(1,1,2,3), x2= c(1,1, 3, 4), x3= c(1,4,6,7))
write.cb(data) ## wrapper to write.table in pipe("pbcopy") on MAC
dat <- read.cb(header=T) ## wrapper to read.table from pipe("pbpaste") on MAC
dat
x1 x2 x3
1 1 1 1
2 1 1 4
3 2 3 6
4 3 4 7
Answer 3:
这是一个老问题,但它仍然是一个最高命中时,我正在寻找如何获得到剪贴板的东西。
现在有比任何这里的答案一个更好的解决方案: clipr
包。
clipr::write_clip()
是你所需要的。 它在Windows,OS X,和X11。
从帮助文件:“write_clip()试图聪明地以有用的方式书写对象如果传递了data.frame或基质,它会使用粘贴write.table到外部电子表格程序格式化,否则将会强制。的对象的字符向量。自动将检查对象的类型,否则表或字符可以被明确指定。”
我还写了一个小的辅助函数来获得最后的结果到剪贴板:
wc <- function(x = .Last.value) {
clipr::write_clip(x)
}
Answer 4:
我发现这个漂亮的代码,直接从剪贴板从马可·Ghislanzoni答案导入Mac上的数据
诀窍是使用管道文件。 在R管材文件可以通过管道功能来解决。 接下来,你需要知道,对应于Mac的剪贴板,这是“pbpaste”管道文件的正确名称。
一旦你把所有的一起,你有一个函数read.table的命令的正确语法:
从Mac OS X clipboardR导入数据
data <- read.table(pipe("pbpaste"), sep="\t", header=T)
Answer 5:
在Mac OS X试试这个:
copy_to_clipboard = function(x,sep="\t",col.names=T,...) {
write.table(x
,file = pipe("pbcopy")
,sep=sep
,col.names = col.names
,row.names = F
,quote = F,...)
}
还有这个:
paste_from_clipboard = function(sep="\t",header=T,...) {
read.table(pipe("pbpaste")
,sep=sep
,header=header,...)
}
Answer 6:
我只是写一些普通的功能 ,对于Windows和Mac上工作。 使用相同的参数与Windows版本,他们使用的字符向量作为输入和输出。
文章来源: How to write from R to the clipboard on a mac