[R-SIG-Mac] R-SIG-Mac] Clipboard

Hans-Joerg Bibiko bibiko at eva.mpg.de
Wed May 16 16:57:22 CEST 2007


Hi,

some time ago I had the same problem. Unless it isn't solved natively  
I use this hack:

I overwrote the file function in R's start script:

file<-function(description = "", open = "", blocking = TRUE, encoding  
= getOption("encoding")){
if(description=="clipboard")
	pipe("pbpaste")
else
	.Internal(file(description, open, blocking, encoding))
}

By doing so you stay cross-platform. But note it is not UTF-8  
compatible. If one need utf-8 support one could write a bash script  
which writes the clipboard content to a file. Then one could replace  
pipe("clipboard") by system("THEBASH");file("/tmp/foo").

Of course, I know this is really a quirky hack but for me it works  
ALMOST quite well, and I can work with the same scripts on a Mac  
(without X11) or on Linux.
If there are unexpected problems you can easily write: rm(file).

Hans


>> Hi there,
>>
>> This command  to use the clipboard as a data source used (pre 2.4?)
>> to work on OS X:
>>
>>  my.data <- read.table(file("clipboard"),header=TRUE)
>>> OR JUST
>>  my.data <- read.table("clipboard", header=TRUE)
>>
>> Now (2.5) the above forms generate an error
>>
>>> Error in open.connection(file, "r") : unable to open connection
>>> In addition: Warning message:
>>> Clipboard cannot be opened or contains no text
>>
>>
>> And instead we have to do:
>>
>> my.data <- read.table(pipe("pbpaste"), header=TRUE)
>>
>>
>> I wonder as this is quite a nice feature, and widely used, if the PC
>> version
>> should not be emulated on the mac (i.e., both the os x terminology
>> "pbpaste"
>> and the generic and user friendly "clipboard" work?
>>
>> It would seem especially valuable as it will help scripts stay
>> cross-platform. The only drawback i can see if that you couldn't  
>> access
>> files called "clipboard" stored in the target directory, but that
>> seems no
>> practical loss.
>>
>> Tim



More information about the R-SIG-Mac mailing list