1.如何给一个SEXP对象写列名。
<br />
//setting SEXP result dims names</p>
<p>#define BRIEFs 9</p>
<p> SEXP dimNames, dnames, rnames;<br />
int p;</p>
<p> p = 0;</p>
<p> PROTECT(dimNames = allocVector(VECSXP, 2));<br />
p++;<br />
PROTECT(dnames = allocVector(VECSXP, BRIEFs));<br />
p++;</p>
<p> SET_VECTOR_ELT(dnames, 0, mkChar("bid")); // total bid;<br />
SET_VECTOR_ELT(dnames, 1, mkChar("ask")); // total ask;<br />
SET_VECTOR_ELT(dnames, 2, mkChar("buy")); // deal by buyin<br />
SET_VECTOR_ELT(dnames, 3, mkChar("bp")); // buyin price<br />
SET_VECTOR_ELT(dnames, 4, mkChar("sold")); // deal by soldout<br />
SET_VECTOR_ELT(dnames, 5, mkChar("sp")); // soldout price<br />
SET_VECTOR_ELT(dnames, 6, mkChar("biv")); // vary bid<br />
SET_VECTOR_ELT(dnames, 7, mkChar("akv")); // vary ask<br />
SET_VECTOR_ELT(dnames, 8, mkChar("masq")); // masquade deal</p>
<p> SET_VECTOR_ELT(dimNames, 1, dnames);<br />
rnames = R_NilValue;<br />
SET_VECTOR_ELT(dimNames, 0, rnames);</p>
<p> setAttrib(result, R_DimNamesSymbol, dimNames);</p>
<p> UNPROTECT(p);</p>
<p>
</p>
忘记说了,这个对象必须按照楼下的设置完行列,且大小要合适才可以。[s:13]