Wie schreiben Sie in die Zwischenablage auf Ubuntu/Linux in R?
Bin ich mit Ubuntu 11.10 und ich möchte in der Lage sein, zu schreiben in die Zwischenablage (oder primäre Selektion). Die folgende gibt einen Fehler,
> x <- 1:10
> dput(x, 'clipboard')
Error in file(file, "wt") : 'mode' for the clipboard must be 'r' on Unix
Wie kann ich das schreiben in die Zwischenablage/primäre Auswahl?
Beachten Sie, dass ich gesehen habe,dieses alte R-Hilfe-die post, aber ich bin mir immer noch nicht klar, was ich tun sollte.
Linux nicht die Zwischenablage, sondern eine X11-Sitzung hat primär-und
sekundäre Auswahl. ?die Datei sagtZwischenablage:
'file' can also be used with 'description = "clipboard"' in mode '"r"' only. It reads the X11 primary selection, which can also be specified as '"X11_primary"' and the secondary selection as '"X11_secondary"'. When the clipboard is opened for reading, the contents are immediately copied to internal storage in the connection. Unix users wishing to _write_ to the primary selection may be able to do so via 'xclip' (<URL: http://people.debian.org/~kims/xclip/>), for example by 'pipe("xclip -i", "w")'.
also RTFM angewendet. Schreiben Sie eine X11-Auswahl braucht mehrere threads
und ich glaube nicht, es lohnt sich die sehr beträchtliche Anstrengung
Umsetzung (anders als bei Windows).Beachten Sie, dass Fenster-Managern können andere Ablagen, und zum Beispiel
die RGtk2 Paket-Schnittstellen für gtk Zwischenablagen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht sicher, ob dies die besten Weg, aber hier ist, wie ich bekommen konnte, um es an die Arbeit:
sudo apt-get install xclip
man xclip
write.table(1:10, pipe("xclip -i", "w"))
Update:
Beachten Sie, dass das übergebene Objekt
write.table
wird nicht in der Zwischenablage, bis das Rohr geschlossen ist. Sie können erzwingen, das Rohr zu schließen, indem Siegc()
. Zum Beispiel:Eine bessere Möglichkeit zur Verwaltung der Verbindung ist die Verwendung einer Funktion mit
on.exit(close(con))
, die in der Nähe der pipe, auch wenn diewrite.table
Aufruf löst einen Fehler. Beachten Sie, dass Sie benötigen, um sicherzustellen, dass Sie das schreiben in die Zwischenablage, die Sie verwenden möchten (primäre) ist die Standardeinstellung, basierend auf Ihrem system-setup.close()
auf, wie in @Freecube die Lösung von unten, hat den trick.gc()
ist, aber eine Funktion undon.exit
ist robuster. Ich habe aktualisiert, meine Antwort entsprechend.Können Sie wieder alles, was Sie schreiben, in die Zwischenablage, nach dem erstellen der Funktion als solche. Standardmäßig gibt tab-separierte Werte mit der Spalte, aber keine Zeile Namen. Geben Sie anderen Separatoren, include-Zeile Namen oder ausschließen Spaltennamen nach Ihren wünschen, wie gezeigt.
Edit: um Zu klären, müssen Sie noch installieren xclip. Sie brauchen nicht, um es zu starten separat Erster, though.
den clipr-Paket macht das wirklich einfach
Versionen:
Konnte ich nicht bekommen, die anderen Lösungen zu arbeiten, so dass ich
man
ed bis. Dieser Ansatz funktioniert für mich (basiert auf anderen' Lösungen).Ist es eine verwässerte version von einer Funktion in meine persönliche R-Paket.
Lesen aus der Zwischenablage
Lesen ist auch schwierig. Hier ist eine Begleiter-Funktion für den oben genannten.