[R-SIG-Mac] pasting from the clipboard
Timothy Bates
timothy@c@b@te@ @ending from gm@il@com
Tue Oct 9 09:44:48 CEST 2018
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 <pdalgd using gmail.com> wrote:
> read.table(text=my_str,....) saves you the dangling open connection.
> -pd
>> On 8 Oct 2018, at 02:43 , Tom Hopper <tomhopper using 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 <rbaer using 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]]
More information about the R-SIG-Mac
mailing list