sta*_*tor 5 linux ubuntu r openoffice-calc libreoffice
我想从 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)
Run Code Online (Sandbox Code Playgroud)
如果我在 LibreOffice Calc 中突出显示一个选择,我想将其直接粘贴到 R Studio 中。我该如何完成这个任务?我已经在 Ubuntu 中安装了 xclip。
sudo apt-get install xclip
Run Code Online (Sandbox Code Playgroud)
您只需反转一些选项和功能即可。
xclip命令的选项需要更改为output,函数write.table需要更改为read.table。
例如:
read.table(pipe("xclip -selection clipboard -o",open="r"))
Run Code Online (Sandbox Code Playgroud)
您可以使用 Anando 提供的解决方案,但在该解决方案的当前描述中遗漏了一些细节。
该命令有效地使用了分为多个选项的read.table("clipboard")命令.Internal(file(description, open, blocking, encoding, method, raw)
Ubuntu 16.04 以及可能更通用的 Linu:x 的情况
我无法在源代码中轻松找到它,但根据行为,“剪贴板”选项似乎默认为“X11_primary”(至少它在 Ubuntu 16.04 中具有相同的行为)。
如果您使用read.delim("X11_clipboard")in 代替,read.delim("clipboard")那么您将获得复制的文本而不是选定的文本。
请注意,使用 X11_clipboard 时可能会出现错误,例如:
> read.table("X11_clipboard")
Error in file(file, "rt") :
X11 clipboard selection is not supported on this system
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您必须在您的系统(即操作系统,例如 Ubuntu)上安装 Xmu 头文件。我在我的例子中遇到了这个错误并通过使用解决了它
sudo apt-get install libxmu-dev
sudo apt-get install xorg-dev
Run Code Online (Sandbox Code Playgroud)
不知道两个谁解决了。但在此之后,当我从源代码重新编译 R 库时,就read.table("X11_clipboard")可以了。(我无法通过从 Ubuntu 存储库安装来使其工作)