私は私のディスク上に持っている4個の.png
の数字からなる2x2のパネルを作成するために、OS Xのシステム上ImageMagick
コマンドを使用していますに2行のコマンドを送信しますRシステム
convert \(image1.png image2.png -append \) \
> \(image3.png image4.png -append \) +append result.png
:私の端子は、上記のコマンドは、2行目の先頭に>
を受け、システムによって調整します
私は、次のコマンドを使用してRの中から、この最後のコマンドを再現しようとしています:
> line1 <- paste0(" convert \\(", " img1.png img2.png -append \\)", " \\")
> line2 <- paste0(" < \\(", " img3.png img4.png -append \\) ", "+append result.png")
> cat(paste(line1, line2, sep='\n'))
convert \(img1.png img2.png -append \) \
< \(img3.png img4.png -append \) +append result.png
はどうやら、cat
からの結果は、私は必要なものですが、私は右の方法を見つけることができませんそれをシステムに送信します。私はsystem
とそれを組み合わせることを試みたが、私はエラーを取得:
system(cat(paste(line1, line2, sep='\n')))
Error in system(cat(paste(line1, line2, sep = "\n"))) :
non-empty character argument expected
質問です:どのように私は、Rは、システムにその特定の2行のコマンドを送信するために使用することができますか?あなたのImageMagickのコマンドで
*のように見えるかもしれません。 *セカンドコールで渡すことができる2番目のコマンドでない限り、別の行として実行する必要はありません。 * b。*シェル行の最後にある '\ 'は、改行文字をエスケープします(余分な空白として無視されます)。そのように渡す必要がある場合は、代わりに改行(' \ n')を追加してください、例えば'system( 'echo $((2 + \ n 3))')'を実行します。 * c。* [magickパッケージ(https://ropensci.org/tutorials/magick_tutorial.html)はこれをやや不必要にします。 * d。*これを解決する最善の方法は、最初に 'mfrow'などでグリッドにプロットすることです。 – alistaire
@alistaireの提案に感謝します。 'magick'パッケージに関する特定のヒント?私はそれをインストールしましたが、私ができたのは、数値を連続して組み合わせることだけでした... 'm x n'パネルを作成するのに役立つドキュメンテーションを見つけることができませんでした... – thiagoveloso