mirror of
https://github.com/msberends/AMR.git
synced 2024-12-26 06:06:12 +01:00
Update clipboard.R
This commit is contained in:
parent
ff90188f41
commit
2f4823f7a7
@ -1,6 +1,6 @@
|
||||
#' Import/export from clipboard
|
||||
#'
|
||||
#' These are helper functions around \code{\link{read.table}} and \code{\link{write.table}} to import from and export to clipboard. The data will be read and written as tab-separated by default, which makes it possible to copy and paste from other software like Excel and SPSS without further transformation.
|
||||
#' These are helper functions around \code{\link{read.table}} and \code{\link{write.table}} to import from and export to clipboard, with support for Windows, Linux and macOS. The data will be read and written as tab-separated by default, which makes it possible to copy and paste from other software like Excel and SPSS without further transformation.
|
||||
#' @rdname clipboard
|
||||
#' @name clipboard
|
||||
#' @inheritParams utils::read.table
|
||||
@ -21,7 +21,16 @@ clipboard_import <- function(sep = '\t',
|
||||
startrow = 1,
|
||||
as_vector = TRUE) {
|
||||
|
||||
import_tbl <- read.delim(file = 'clipboard',
|
||||
if (is_Windows() == TRUE) {
|
||||
file <- 'clipboard'
|
||||
} else {
|
||||
# use xclip package
|
||||
check_xclip()
|
||||
file <- pipe("xclip -o -selection c", "r")
|
||||
gc(FALSE) # ?gc: A call of gc causes a garbage collection to take place.
|
||||
}
|
||||
|
||||
import_tbl <- read.delim(file = file,
|
||||
sep = sep,
|
||||
header = header,
|
||||
strip.white = TRUE,
|
||||
@ -67,9 +76,18 @@ clipboard_export <- function(x,
|
||||
|
||||
x <- get(x)
|
||||
|
||||
if (is_Windows() == TRUE) {
|
||||
# set size of clipboard to 125% of the object size of x
|
||||
file <- paste0("clipboard-", size * 1.25)
|
||||
} else {
|
||||
# use xclip package
|
||||
check_xclip()
|
||||
file <- pipe("xclip -i -selection c", "w")
|
||||
gc(FALSE) # ?gc: A call of gc causes a garbage collection to take place.
|
||||
}
|
||||
|
||||
write.table(x = x,
|
||||
file = paste0("clipboard-", size * 1.25),
|
||||
file = file,
|
||||
sep = sep,
|
||||
na = na,
|
||||
row.names = FALSE,
|
||||
@ -81,3 +99,12 @@ clipboard_export <- function(x,
|
||||
cat("Successfully exported to clipboard:", NROW(x), "obs. of", NCOL(x), "variables.\n")
|
||||
}
|
||||
}
|
||||
|
||||
is_Windows <- function() {
|
||||
Sys.info()['sysname'] %like% "Windows"
|
||||
}
|
||||
check_xclip <- function() {
|
||||
if (!isTRUE(file.exists(Sys.which("xclip")[1L]))) {
|
||||
stop("Please install Linux package xclip first.")
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user