R: Функция копирования в буфер обмена на Mac/OSX? - программирование
Подтвердить что ты не робот

R: Функция копирования в буфер обмена на Mac/OSX?

Я видел функцию Windows для копирования в буфер обмена в R. Есть ли эквивалентная функция для Mac OSX?

4b9b3361

Ответ 1

Из файла справки для base::connections:

Пользователи Mac OS X могут использовать pipe ( "pbpaste" ) и pipe ( "pbcopy", "w" ) для чтения и записи в этот системный буфер обмена.

Ответ 2

Угу. Карл в точности прав. Лучший способ - использовать pbpaste/pbcopy.

Вот хорошая статья о деталях: http://langui.sh/2010/11/14/pbpaste-pbcopy-in-mac-os-x-or-terminal-clipboard-fun/

Rob


10/17/2013 - Обновление: Начиная с версии 3.0, пакет kmisc содержит функцию read.cb() для многоплатформенного использования буфера обмена. Ответ от @agstudy здесь: fooobar.com/questions/323927/...

Ответ 3

Для общего чтения буфера обмена в Mac синтаксис будет выглядеть следующим образом:

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

... здесь только место, найдите scan справку, чтобы увидеть очень много параметров, которые у вас есть (по умолчанию scan ожидается переменная double в аргументе what; character, вероятно, безопасен для общей копии, или вы можете выбрать все, что подходит для вашего случая).

Аналогично, для вставки в буфер обмена Mac общий синтаксис Mac

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

Обратите внимание, что почти такой же синтаксис должен работать и в Windows и Linux; вы должны просто заменить вызовы pipe на общее имя соединения "clipboard".

Функция пакета Kmisc, упомянутая выше, работает только для фреймов данных и табличных данных, а не для общей копии/пасты.