2017-10-25 8 views
0

Rのpdftoolsパッケージが、Windows 7マシンでローカルに実行されている場合とssh経由で共有Ubuntuサーバーで実行されている場合の動作が異なるようです。Rのpdftoolsが異なるマシン間で実行する場合

マイコード:Ubuntuのサーバー上で、それはとして表示に対し、私のローカルのWindows 7マシンで

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

、オブジェクトコードブックは、 "大文字(258個の要素、710.2 KB)" として表示されます"大きな文字(258要素、701.9 Kb)"。

これは私のローカルマシンで動作するコードがUbuntuサーバーで同じ結果を生成していない下流の私には問題を引き起こしています。 コードブックに含まれるテキストを見ると、私がすぐに気づくのは、Windowsで作成されたバージョンが "\ r \ n"の場合、Ubuntuで生成されたバージョンは "\ n"のみである( "\ r" \ n ")。

なぜ文字シリーズが異なるのですか?それはエンコーディングと何か関係がありますか?これを引き起こしていることと、両方のマシンでどのように同じ結果を得ることができるのかについての助けとなりました。

言及する最後の事は:た後

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

:私はインストールするpdftoolsを得るためにUbuntuのサーバー上の自分のホームディレクトリ(sudoのアクセスを持っていない)へのpopplerライブラリをインストールする必要がありましたinstall.packages( "pdftools")が正しく動作しているようです。 pdftoolsは問題なくロードされます。だから、それが悪いインストールの場合、私は何が間違っているか分からない。

+0

いずれの不一致も、使用中のエンコード問題やエンコード問題のポップラーライブラリのb/cとなる可能性があります。あなたは何をした。ドキュメントは何ですか?あなたがqを提出したときに提供するように指示された再現可能なコードはどこですか? – hrbrmstr

+0

お返事ありがとうございます。ドキュメントは上記のRコードにあります。それは、install.packages( "pdftools")とlibrary(pdftools)以外のRでの複製に必要なすべてのコードです。 popplerライブラリを取得するために使用したコードは次のとおりです。 apt-get source poppler; cd poppler-0.24.5; ./configure --prefix = $ HOME/myapps; make; make install; エクスポートPKG_CONFIG_PATH = $ HOME/myapps/lib/pkgconfig; – lost

答えて

0

いくつかのこと:

  • Windowsが異なる行末を持っている、これはextensively documentedです。これだけでサイズの違いを説明します
  • ダウンロードした後でも、両方の表記法を変換できます。これを行うツールの1つはです。apt-get install dos2unix
  • あなたはポップラーを構築することによって人生を複雑にしています。 configure script for pdftools saysとして、ちょうどapt-get install libpoppler-cpp-dev

しかし経由してライブラリをインストールします。ほとんどの正気のプログラム、およびRは含まれ、インポートしたデータが同じである必要がありますので、同じよう\r\nnを扱います。あなたがそうでない場合は、 dos2unixまたは同等のツールを使用して必要に応じて変換してください。長期的には、コードを気にしないでください。

+0

あなたの答えをありがとう!私がconfigureスクリプトからその行を実行すると、サーバから "permission denied"(rootまたはsudoのアクセス権を持っていない)が得られます。Rのインポートされたテキストは異なっています(ウインドウは "\ r \ n"を与えますが、 "\ n"を与えます)が、それはwikiの記事で説明されます。私は行末を使ってテキストを処理/分割していたので、私はその違いに自分のコードを適合させました。 – lost

+0

'sudo apt-get install libpoppler-cpp-dev'が必要です –

関連する問題