2017-10-25 2 views
0

Ich bemerke ein Problem, bei dem das pdftools-Paket in R scheint, anders als lokal auf meinem Windows 7-Computer auszuführen, wenn ich es auf einem gemeinsamen Ubuntu-Server über ssh ausführe.pdftools in R, die auf Maschinen unterschiedlich sind

Mein Code:

download.file("http://www.nber.org/lbid/docs/LinkCO95Guide.pdf", 
      "1995codebook.pdf", 
      mode = "wb", 
      method = "libcurl") 
codebook <- pdf_text("1995codebook.pdf") 

Auf meinem lokalen Windows-7-Maschine, das Objekt Codebuch wie zeigt sich "Großzeichen (258 Elemente, 710.2 Kb)", während auf dem Ubuntu-Server zeigt es sich als "Großer Charakter (258 Elemente, 701,9 Kb)".

Wie Sie sich vorstellen können, verursacht dies Probleme für mich Downstream, wo Code, der auf meinem lokalen Rechner funktioniert, nicht die gleichen Ergebnisse auf dem Ubuntu-Server produziert. Betrachtet man den Text in Codebuch der erste Unterschied, den ich sofort bemerke, ist, dass, wo die Version unter Windows produziert hat "\ r \ n" die auf Ubuntu produzierte Version nur "\ n" hat (ich verlasse mich auf "\ r \ n "stromabwärts".

Warum sollte diese Zeichenserie anders sein? Könnte es etwas mit Codierung zu tun haben? Jede Hilfe wird geschätzt, was das verursacht und wie ich die gleichen Ergebnisse auf beiden Maschinen erzielen kann.

Eine letzte Sache zu erwähnen: Ich hatte die poppler Bibliothek zu meinem Home-Verzeichnis auf dem Ubuntu-Server zu installieren, um (nicht sudo Zugang haben) zu pdftools erhalten zu installieren:

apt-get source poppler 
cd poppler-0.24.5 
./configure --prefix=$HOME/myapps 
make 
make install 
export PKG_CONFIG_PATH=$HOME/myapps/lib/pkgconfig 

Nach getan, scheint install.packages ("pdftools") korrekt zu laufen. Und pdftools lädt ohne Problem. Also, wenn es eine schlechte Installation ist, bin ich mir nicht sicher, was schief gelaufen ist.

+0

Jede Diskrepanz kann B/C der Poppler-Bibliothek in Verwendung oder Codierung Probleme sein. Was haben Sie gemacht. Was ist das Dokument? Wo ist der reproduzierbare Code, den Sie erhalten haben, als Sie ein q eingereicht haben? – hrbrmstr

+0

Danke für die Antwort. Das Dokument befindet sich im obigen R-Code. Das ist der Code, der für die Reproduktion in R benötigt wird, außer install.packages ("pdftools") und library (pdftools). Der Code, den ich verwendet habe, um die Poppler-Bibliothek zu bekommen, war: apt-get source poppler; cd poppler-0.24.5; ./configure --prefix = $ HOME/myapps; machen; make installieren; Export PKG_CONFIG_PATH = $ HOME/myapps/lib/pkgconfig; – lost

Antwort

0

Ein paar Dinge:

  • Windows-verschiedene Zeilenende hat, ist dies extensively documented. Dies allein berücksichtigt den Größenunterschied
  • Auch nach dem Download können Sie zwischen beiden Konventionen konvertieren. Ein Werkzeug, um dies zu tun ist dos2unix, die Sie über apt-get install dos2unix
  • erhalten können Sie machen Ihr Leben zu kompliziert, indem Sie Poppler bauen. Als configure script for pdftools says, installieren Sie einfach die Bibliothek über apt-get install libpoppler-cpp-dev

Allerdings: Die meisten gesunden Programme und R enthalten, behandeln \r\n und n identisch, so sollten Sie Ihre importierten Daten gleich sein. Wenn dies nicht der Fall ist, verwenden Sie dos2unix oder gleichwertige Tools zum Konvertieren nach Bedarf. Auf lange Sicht wollen Sie Ihren Code nicht kümmern.

+0

Danke für Ihre Antwort! Wenn ich diese Zeile vom configure-Skript ausgeführt habe, bekam ich "permission denied" vom Server (habe keinen root- oder sudo-Zugriff).Der importierte Text in R ist anders (Windows gab "\ r \ n" aus, während ubuntu "\ n" angibt), aber das würde durch den Wiki-Artikel erklärt werden. Ich benutzte die Zeilenenden, um den Text zu verarbeiten/zu teilen, also passte ich meinen Code einfach an den Unterschied an. – lost

+0

Sie brauchen 'sudo apt-get install libpoppler-cpp-dev' –

Verwandte Themen