2012-01-27 29 views

Respuesta

20

Desde el archivo de ayuda para base::connections:

usuarios de Mac OS X pueden usar tubería ("pbpaste") y el tubo ("pbcopy", "w") para leer y escribir en el portapapeles del sistema.

+1

No sé nada sobre R, pero tengo curiosidad por saber por qué 'writeClipboard' y' readClipboard' no están implementados en OS X si son parte de la biblioteca estándar de R. – bames53

+0

@ bames53 Las funciones parecen ser una extensión solo para Windows. En realidad, no están documentados en el manual en línea; el archivo de ayuda se trata de leer desde el portapapeles X11, que es lo único que R parece ser capaz de hacer de manera predeterminada. – millimoose

+0

No he encontrado esta respuesta útil. Esta respuesta es más instructiva: http://stackoverflow.com/questions/14547069/how-to-write-from-r-to-the-clipboard-on-a-mac?lq=1 – Hugh

8

Yep. Carl tiene toda la razón. La mejor manera es usar pbpaste/pbcopy.

He aquí un buen artículo sobre los detalles: http://langui.sh/2010/11/14/pbpaste-pbcopy-in-mac-os-x-or-terminal-clipboard-fun/

Rob


10/17/2013 - Actualización: A partir de R 3.0 kmisc el paquete contiene la función read.cb() para multi -plataforma de portapapeles. Hace referencia a la respuesta de @ agstudy aquí: https://stackoverflow.com/a/14547293/168689

+0

¿Por qué no añadir esto como un comentario a la respuesta de Carl si te refieres a él de todos modos? – millimoose

+2

Eso fue un error. Busqué la opción de respuesta y no la vi. Lo siento :) – Rob

+3

@Inerdial por alguna razón, es una característica de stackoverflow que no puedes dejar comentarios hasta que tengas 50 reputación http://stackoverflow.com/privileges/comment. +1 a Rob por empatía. – GSee

3

Para genérica portapapeles de lectura en Mac, la sintaxis sería:

indat<-scan(pipe("pbpaste"),what=character(),...) 

El ... aquí es sólo un lugar titular, buscar el scan ayuda a ver el muy muchas opciones (el scan predeterminado es esperar una variable double en el argumento what; character es probablemente la más segura para una copia genérica, o puede elegir lo que sea adecuado para su caso).

Del mismo modo, para pegar en el portapapeles de Mac, la sintaxis genérica Mac es

outdat<-"Hi There!" 
cat(outdat, file=pipe("pbcopy","w"), ...) 

Tenga en cuenta que la casi la misma sintaxis debería funcionar en Windows y Linux, así; simplemente debe reemplazar las llamadas pipe con el nombre genérico de conexión "clipboard".

La función de paquete Kmisc mencionada anteriormente solo funciona para marcos de datos y datos tabulares, no para copiar/pegar genéricos.

Cuestiones relacionadas