8

重い計算タスク用の R の拡張として C++/Rcpp を把握しようとしています。最終的に、これらの C++ ライブラリはパッケージに統合する必要があるため、簡単に作業できるセットアップ/ツールの組み合わせ/IDE を探しています。好みに大きく左右されることは承知していますが、選択する前に選択肢を知っておくとよいでしょう。

では、C++ ライブラリを使用して R パッケージを開発する場合、どのようなセットアップを使用しますか?

  • R と C++ に同じエディター/IDE を使用していますか?
  • 取得することが重要な追加のツール (Rtools 以外) はありますか?
  • プロセスを大幅に把握またはスピードアップするために重要な一般的なセットアップの微調整はありますか?

この質問が以前に尋ねられた場合は申し訳ありません。R 用のすべてのエディターのリストを見つけましたが、C++ コードを含むパッケージの開発に特に向けられたものは何もありませんでした。ヒントやヒントは本当にありがたいです。

編集:プラットフォームはWindowsですが、問題なくLinuxに移行できます(デュアルブート、ubuntuを使用できないのは、古いカードと古い画面の組み合わせに適したドライバーがないことだけです)

4

4 に答える 4

6

現代の世界で私たちに参加したい場合は、Eclipse + statet :)

于 2010-11-09T22:55:03.983 に答える
3

もちろん、私はより多くのRcpp作業に完全に賛成です :)

あなたの質問に関して、そして順番に:

  • 同じエディター (Emacs) は、私が使用するどちらのプラットフォーム (ほとんどの場合 Linux、場合によっては Windows) でも優れた一貫性をもたらします。qtcreator記録として、私はLinux と Windows でかなり優れている (ただし R は実行しない) IDE を支持する意見も述べました。
  • いいえ、Linuxではすべて既製です(はい、WindowsではRtoolsが必要です)...
  • そうではありません -- R/C++ コード スニペットのテストに適したinlineについては、おそらく既にご存じでしょう。

編集:ある意味では、これは通常の R / C / C++ / Fortran 開発とまったく違いはありません。その場合、私は通常、完全に R と Emacs に専念しているR FAQ セクション 6を参照します :) そうは言っても、C++ 作業用に Emacs を設定することは明らかではなく、ここには多くの質問と投稿があります。私は特定のクラスのブラウザを使用していませんが、タイプのオートコンプリートへのアプローチなど、いくつかあります。

于 2010-11-09T16:26:51.520 に答える
2

複数の言語、R、C+、おそらく Makefiles などを処理できるエディターが必要になります。Rtools について言及しているので、Windows を使用しているように聞こえます。R、C++、および他の多くの言語を処理する Notepad++ をお勧めします。さらに、NppExec を介してカスタム コマンドをセットアップして、パッケージをより簡単にビルドできます。Notepad++ を使用して C/C++ を多用するパッケージをいくつか開発しました。

于 2010-11-09T16:48:45.017 に答える
1

Rcpp パッケージを開発するための Eclipse CDT プロジェクトを生成するための cmake スクリプトを作成しました。

さらに、cmake は CodeBlocks または KDevelop3 プロジェクトを生成できる可能性がありますが、これらの機能はまだ確認していません。

環境

  • CMake >= 2.8.7
  • 日食 >= 3.7
  • Eclipse CDT >= 1.4.2
  • R >= 2.15
  • Rcpp >= 0.10

構成

  • Rstudioが提供するgithubからFindLibR.cmakeをダウンロード

  • たとえば、Rcpp パッケージを生成します。

    library(Rcpp)
    Rcpp.package.skeleton("RcppPackage")
    
  • CMakeLists.txtという名前の次のスクリプト (または gist からダウンロード)を、前の例のように生成されたフォルダーに配置します。RcppPackage

    cmake_minimum_required(VERSION 2.8)
    project(RcppPackage)
    find_package(LibR)
    if(${LIBR_FOUND})
    else()
        message(FATAL_ERROR "No R...")
    endif()
    message(STATUS ${CMAKE_SOURCE_DIR})
    execute_process(
        COMMAND ${LIBR_EXECUTABLE} "--slave" "-e" "stopifnot(require('Rcpp'));cat(Rcpp:::Rcpp.system.file('include'))"
        OUTPUT_VARIABLE LIBRCPP_INCLUDE_DIRS
    ) 
    include_directories(BEFORE ${LIBR_INCLUDE_DIRS})
    message(STATUS ${LIBR_INCLUDE_DIRS})
    include_directories(BEFORE ${LIBRCPP_INCLUDE_DIRS})
    message(STATUS ${LIBRCPP_INCLUDE_DIRS})
    add_custom_target(RcppPackage ALL
        COMMAND find ${CMAKE_SOURCE_DIR} -name "*.o" -exec rm "{}" "\;"
        COMMAND find ${CMAKE_SOURCE_DIR} -name "*.so" -exec rm "{}" "\;"
        COMMAND ${LIBR_EXECUTABLE} "--slave" "-e" "\"stopifnot(require(roxygen2));roxygenize('${CMAKE_SOURCE_DIR}',roclets=c('rd','collate','namespace'))\""
        COMMAND ${LIBR_EXECUTABLE} CMD INSTALL "${CMAKE_SOURCE_DIR}")
    
  • カスタマイズroxygenizeR CMD INSTALLCMakeLists.txtで

  • cmakeでプロジェクトを生成

    mkdir build # don't create subdirectory of RcppPackage
    cd build
    cmake -G "Eclipse CDT4 - Unix Makefiles" <path to RcppPackage> -DCMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT=TRUE
    
  • Eclipse を開き、プロジェクトをインポートしますbuild(たとえば、 cmake-eclipse-cdtを参照してください)。インデックス作成後、トレースやオートコンプリートなど、Eclipse CDT が提供するいくつかの便利な機能をお楽しみください。

  • R CMD INSTALLまたはCMakeLists.txtに変換されるプロジェクトをビルドできます。

于 2013-01-29T08:03:50.670 に答える