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 ループを用います