Chapter 23 factor

因子ベクトル(factor)の実体は属性 levels が定義された整数ベクトルです。因子ベクトルの各要素の値は、属性 levels の最初の要素に対応する値が 1、次の要素に対応する値が 2、というようになっています。

下の例では、IntergerVector に属性を指定することで factor に変換する例を示しています。

// factor の作成
// [[Rcpp::export]]
RObject rcpp_factor(){
  IntegerVector v = {1,2,3,1,2,3};
  CharacterVector ch = {"A","B","C"};
  v.attr("class") = "factor";
  v.attr("levels") = ch;
  return v;
}

下の実行結果を見ると R に返された整数ベクトル v は factor 型として扱われていることがわかります。

> rcpp_factor()
[1] A B C A B C
Levels: A B C