2015-08-28 101 views
0

我正在與Rcpparmadillo合作,並獲得有關如何到達列表中的元素的問題。訪問Rcpparmadillo列表中的元素?

這是可以理解的,當我將值返回給R時,現在我想知道如何在C++中這樣做,換句話說,從函數生成的列表仍然在C++中引用。

例如,我有一個函數:

List foo(...){ 
     ..... 
     return List::create(Named("example1") = example1, Named("example2") = example2) 
    } 

現在我有另一種功能在C++和example1是在函數的變量,所以如何用C到達example1 ++。

在此先感謝。我不熟悉C++。

回答

0

我意識到返回值現在是一個列表,可以通過Rcpp::as<arma::mat>(...)轉換,'...'可以由列表的名稱和要到達的元素填充,在R中總共有相同的東西。謝謝來自@DirkEddelbuettel的幫助。

+1

錯了。如何閱讀Rcpp文檔,現在您正在使用Rcpp? 'List'是'Rcpp :: List'所以... –

+0

@DirkEddelbuettel,我正在使用Rcpparmadillo,我構建了列表,如我在示例中所示。現在,當我嘗試讀取列表中的元素時,我嘗試了'REAL(VECTOR_ELT(x,0))[0];'它運行良好。但是剩下的另一個問題是,如果一個向量或矩陣存儲在列表中,那麼我怎樣才能達到它們的整體,通過我提出的方法,我只能達到第一個要素。謝謝。 –

+2

您是否閱讀過*我們的任何文檔?小故事? [Rcpp Gallery](http://gallery.rcpp.org)?你使用的可能「工作」,但是基本的C模式。你可以做得更多,更好... –