Simple utility functions to read and write from the system clipboards of Windows, OS X, and Unix-like systems (which require either xclip or xsel.)
Install from CRAN
install.packages("clipr")
Or try the development version
devtools::install_github("mdlincoln/clipr")
library("clipr")
cb <- read_clip()
# Character vectors with length > 1 will be collapsed with system-appropriate
# line breaks, unless otherwise specified
cb <- write_clip(c("Text", "for", "clipboard"))
cb
#> [1] "Text\nfor\nclipboard"
cb <- write_clip(c("Text", "for", "clipboard"), breaks = ", ")
cb
#> [1] "Text, for, clipboard"
write_clip
also tries to intelligently handle data.frames and matrices, rendering them with write.table
so that they can be pasted into a spreadsheet like Excel.
tbl <- data.frame(a = c(1, 2, 3), b = c(4, 5, 6))
cb <- write_clip(tbl)
cb
#> [1] "a\tb\n1\t4\n2\t5\n3\t6"
read_clip_tbl
will try to parse clipboard contents from spreadsheets into data frames directly.
clipr's functionality on X11-based systems depends on the installation of additional software. Therefore, if you want to use clipr in your package, you will want to take some care in how you call it, and make sure that your package will respond gracefully if clipboard functionality is not working as expected. You can use the function clipr_available()
to check if the clipboard is readable and writable by the current R session.
A few best practices will also help you responsibly test your clipr-using package on headless systems like CRAN or other testing infrastructure like Travis:
read_clip()
or write_clip()
ought to be wrapped in \dontrun{}
clipr_available()
. This is necessary to pass CRAN checks..travis.yml
for this package, which includes code for setting the DISPLAY
environment variable, installing xclip
and xsel
, and running a pre-build script that will set up xclip
/xsel
to run headlessly.dr_clipr()
provides these.(a non-comprehensive list)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.