For what it’s worth, this is the function I use: umx::umx_write_to_clipboard <- function (x) { if (umx_check_OS("OSX")) { clipboard <- pipe("pbcopy", "w") write.table(x, file = clipboard, sep = "\t", row.names = FALSE, col.names = FALSE, quote = FALSE) close(clipboard) } else if (umx_check_OS("Windows")) { write.table(x, file = "clipboard", sep = "\t", col.names = NA) } else { message("clipboard not implemented for *nix - awaiting a reliable solution. See:\n\t\thttps://stackoverflow.com/questions/13438556/how-do-i-copy-and-paste-data-into-r-from-the-clipboard#13438558") } }
Checking for updates on the unix front, I see a package called datapasta https://CRAN.R-project.org/package=datapasta <https://cran.r-project.org/package=datapasta> Not sure how good it is > On 8 Oct 2018, at 10:08, peter dalgaard <pda...@gmail.com> wrote: > read.table(text=my_str,....) saves you the dangling open connection. > -pd >> On 8 Oct 2018, at 02:43 , Tom Hopper <tomhop...@gmail.com> wrote: >> >> Another approach that should work cross-platform is to paste the data into >> a string, then read the string using read.table(): >> >> my_str <- "<paste data here>" >> my_df <- read.table(textConnection(object = my_str), >> header = TRUE, >> sep = "", >> stringsAsFactors = FALSE) >> >> The pasted data should have line breaks so each row is on its own line in >> your script, and you'll want to adjust the parameters header and sep to >> suit your data. >> >> An example of suitable data would be: >> >> my_str <- "T_/K Density_g/mL D2O >> 273 0.999841 1.10469 >> 274 0.999900 NA >> 275 0.999941 NA" >> >>>> On Oct 3, 2018, at 9:22 AM, Robert Baer <rb...@atsu.edu> wrote: >>>> My memory is that on the Mac >>>> >>>> dat = read.table(file = pipe("pbpaste"), header = TRUE) # should >>> allow me to paste a dataframe copied from a spreadsheet into R. >>>> >>>> When I try that in RStudio 1.1.456 with R 3.5.1 on OSX 10.13.1 >>>> >>>> I get the message: >>>> >>>> incomplete line found by readTableHeader on 'pbpaste' >>>> >>>> Could anyone explain this message to me, and more importantly, tell me >>> the proper way to paste a dataframe copied to the clipboard from Excel on >>> the Mac? >>>> >>> The default cell (field) delimiter with Excel is the TAB character, so you >>> want to use something like: >>> >>> read.table(pipe("pbpaste"), sep = "\t", header = TRUE) >>> >>> Note that you will likely get a warning along the lines of what you got >>> above, which I believe is due to Excel not having an EOL for the final row >>> in the clipboard. >>> >>> Regards, Marc Schwartz [[alternative HTML version deleted]] _______________________________________________ R-SIG-Mac mailing list R-SIG-Mac@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-mac