Chapter 22 属性値

Rcppのオブジェクトの属性値へアクセスするには、次のメンバ関数を用います。

22.0.0.1 attr( name )

文字列 name で指定した属性値へアクセスして値の取得や設定を行います。

List L;
L.attr("class") = "my_class";

22.0.0.2 attributeNames()

オブジェクトが持っている属性の一覧を返します。返値の型は C++ の vector<string> なので、CharacterVector に変換する場合には wrap() 関数を用います。

CharacterVector ch = wrap(x.attributeNames());

22.0.0.3 hasAttribute( name )

このオブジェクトが 文字列 name で指定した名前の属性を持っている場合は true を返します。

bool b = x.hasAttribute("name");

##主要な属性値

要素名など使用頻度の高い属性については専用のアクセス関数が用意されている場合があります。

//要素名、これらは同義である
x.attr("names");
x.names();

下に主要な属性値へのアクセス方法を示す

Vector v
v.attr("names");//要素名
v.names();      //要素名

Matrix m;
m.ncol();  //列数
m.nrow();  //行数
m.attr(“dim”) = NumericVector::create(行数, 列数);
m.attr(“dimnames”) = List::create(行名ベクトル, 列名ベクトル);

DataFrame df;
df.attr(“names”);     //列名
df.attr(“row.names”); //行名

List L;
L.names(); //要素名