Chapter 6 コンソール画面への出力
メッセージやオブジェクトの値を画面に表示するためには Rprintf()
か Rcout
を用います。エラー表示のためには REprintf()
か Rcerr
を用います。
Rcout
Rcerr
の使い方は標準 C++ の cout
cerr
と同じで、出力したい順に文字列や変数を <<
でつなげて記述します。なお、Vector
型の変数を与えると全要素を表示します。
// [[Rcpp::export]]
void rcpp_rcout(NumericVector v){
// Rcout にベクトル変数を与えると全要素を表示します
Rcout << "The value of v : " << v << "\n";
// エラーメッセージを表示する際は Rcerr を用いる
Rcerr << "Error message" << "\n";
}
Rprintf()
関数と REprintf()
関数の使い方は標準 C にある printf()
関数と同じで、書式を指定して変数の値を出力します。
書式文字列の中で変数の値を用いたい部分には %
から始まる書式指定子を記述します。書式指定子は書式文字列のなかで複数記述することもでき、その場合は、書式文字列の中で書式指定子が現れる順に、表示したい変数を引数として渡します。
使用できる書式指定子の一部を下の表に示します。詳細は C 言語の解説書などを参考にしてください。
書式指定子 | 説明 |
---|---|
%i |
整数 (int ) の引数を表示します |
%u |
符号無し整数 (unsigned int ) の引数を表示します |
%f |
実数 (double ) の引数を小数形式で表示します |
%e |
実数 (double ) の引数を指数形式で表示します |
%c |
1文字 (char ) の引数を表示します |
%s |
文字列 (char* ) の引数を表示します |
なお、Rprintf()
関数で表示できる変数の型は標準 C で提供されている型に限られるので、Rcpp の NumericVector
など Rcpp で定義されている型は Rprintf()
関数の引数として与えて表示することはできません。ただし、Rcpp のベクトルの要素の1つ1つは int
や double
など標準 C で提供されている基本的な型なので表示することができます。そのため、Rprintf()
関数でベクトルの全要素を表示する場合には、下のコード例のように for ループを用います