R 从剪贴板复制 Ubuntu Linux
R Copy from Clipboard in Ubuntu Linux
我想从 Ubuntu Linux 剪贴板复制到 R Studio。我的工作流程包括在 R Studio 和 LibreOffice Calc 之间来回移动。我找到了以下用于写入 Linux X11 剪贴板的代码,但我不知道如何从中读取。
写入 X11 Linux 剪贴板:
clipboard <- function(x, sep="\t", row.names=FALSE, col.names=TRUE){
con <- pipe("xclip -selection clipboard -i", open="w")
write.table(x, con, sep=sep, row.names=row.names, col.names=col.names)
close(con)
}
# Examples
vec <- c(1,2,3,4)
clipboard(vec)
clipboard(vec, ",", col.names=FALSE)
clipboard(vec, " ", row.names=TRUE)
如果我在 LibreOffice Calc 中突出显示一个选择,我想将其直接粘贴到 R Studio 中。我如何完成这个任务?我已经在 Ubuntu.
安装了 xclip
sudo apt-get install xclip
谢谢A5C。以下代码确实可以将剪贴板数据拉入 R,尽管正确的结果有些随机。
read.delim("clipboard")
只有当我在 LibreOffice Calc 中的每行末尾点击 return 时它才会起作用(很多工作)。或者,如果我突出显示从最后一行开始的数据,最右边的列,然后向上和向左移动。或者,如果突出显示数据但不复制它。只是突出显示它。不要按 CTRL+C。突出显示数据并输入 read.delim("clipboard") 命令,R Studio 会将其拉入。奇怪,但确实如此。否则我会收到以下错误。
Warning message: In read.table(file = file, header = header, sep =
sep, quote = quote, : incomplete final line found by
readTableHeader on 'clipboard'
使用 xclip
你只需要反转一些选项和功能。
xclip命令的选项需要改为输出,函数write.table需要改为read.table。
例如:
read.table(pipe("xclip -selection clipboard -o",open="r"))
使用文件()
您可以使用 Anando 提供的解决方案,但在该解决方案的当前描述中遗漏了一些细节。
命令 read.table("clipboard")
有效地使用了命令 .Internal(file(description, open, blocking, encoding, method, raw)
,它分为多个选项
- "X11_primary"(已选择文字)
- "X11_secondary"(某些辅助复制字段仅供某些程序使用)
- "X11_clipboard"(复制文本)
Ubuntu 16.04 的情况,也许更一般 Linu:x
我无法在源代码中轻松找到它,但根据行为,"clipboard" 选项似乎默认为 "X11_primary"(至少它在 [=67 中具有相同的行为=] 16.04).
如果您使用 read.delim("X11_clipboard")
代替 read.delim("clipboard")
,那么您会得到复制的文本而不是选定的文本。
请注意,使用 X11_clipboard 时可能会出错,例如:
> read.table("X11_clipboard")
Error in file(file, "rt") :
X11 clipboard selection is not supported on this system
在这种情况下,您必须在您的系统(即操作系统,例如 Ubuntu)上安装 Xmu 头文件。我在我的案例中遇到了这个错误,并通过使用
解决了它
sudo apt-get install libxmu-dev
sudo apt-get install xorg-dev
不知道是哪两个解决了。但在此之后,当我从源代码重新编译 R-base 时,read.table("X11_clipboard")
起作用了。 (我无法通过从 Ubuntu 存储库安装它来工作)
我想从 Ubuntu Linux 剪贴板复制到 R Studio。我的工作流程包括在 R Studio 和 LibreOffice Calc 之间来回移动。我找到了以下用于写入 Linux X11 剪贴板的代码,但我不知道如何从中读取。
写入 X11 Linux 剪贴板:
clipboard <- function(x, sep="\t", row.names=FALSE, col.names=TRUE){
con <- pipe("xclip -selection clipboard -i", open="w")
write.table(x, con, sep=sep, row.names=row.names, col.names=col.names)
close(con)
}
# Examples
vec <- c(1,2,3,4)
clipboard(vec)
clipboard(vec, ",", col.names=FALSE)
clipboard(vec, " ", row.names=TRUE)
如果我在 LibreOffice Calc 中突出显示一个选择,我想将其直接粘贴到 R Studio 中。我如何完成这个任务?我已经在 Ubuntu.
安装了 xclipsudo apt-get install xclip
谢谢A5C。以下代码确实可以将剪贴板数据拉入 R,尽管正确的结果有些随机。
read.delim("clipboard")
只有当我在 LibreOffice Calc 中的每行末尾点击 return 时它才会起作用(很多工作)。或者,如果我突出显示从最后一行开始的数据,最右边的列,然后向上和向左移动。或者,如果突出显示数据但不复制它。只是突出显示它。不要按 CTRL+C。突出显示数据并输入 read.delim("clipboard") 命令,R Studio 会将其拉入。奇怪,但确实如此。否则我会收到以下错误。
Warning message: In read.table(file = file, header = header, sep = sep, quote = quote, : incomplete final line found by readTableHeader on 'clipboard'
使用 xclip
你只需要反转一些选项和功能。
xclip命令的选项需要改为输出,函数write.table需要改为read.table。
例如:
read.table(pipe("xclip -selection clipboard -o",open="r"))
使用文件()
您可以使用 Anando 提供的解决方案,但在该解决方案的当前描述中遗漏了一些细节。
命令 read.table("clipboard")
有效地使用了命令 .Internal(file(description, open, blocking, encoding, method, raw)
,它分为多个选项
- "X11_primary"(已选择文字)
- "X11_secondary"(某些辅助复制字段仅供某些程序使用)
- "X11_clipboard"(复制文本)
Ubuntu 16.04 的情况,也许更一般 Linu:x
我无法在源代码中轻松找到它,但根据行为,"clipboard" 选项似乎默认为 "X11_primary"(至少它在 [=67 中具有相同的行为=] 16.04).
如果您使用 read.delim("X11_clipboard")
代替 read.delim("clipboard")
,那么您会得到复制的文本而不是选定的文本。
请注意,使用 X11_clipboard 时可能会出错,例如:
> read.table("X11_clipboard")
Error in file(file, "rt") :
X11 clipboard selection is not supported on this system
在这种情况下,您必须在您的系统(即操作系统,例如 Ubuntu)上安装 Xmu 头文件。我在我的案例中遇到了这个错误,并通过使用
解决了它sudo apt-get install libxmu-dev
sudo apt-get install xorg-dev
不知道是哪两个解决了。但在此之后,当我从源代码重新编译 R-base 时,read.table("X11_clipboard")
起作用了。 (我无法通过从 Ubuntu 存储库安装它来工作)