R: где найти исходный код для всех функций Rfast

#r #rcpp

#r #rcpp

Вопрос:

Я только что нашел невероятно полезный пакет под названием Rfast, который использует Rcpp для выполнения рутинных операций. Поэтому я хотел бы выразить им свою благодарность за их работу, а также создателям Rcpp, конечно.

Может быть, глупый вопрос, но кто-нибудь знает, где я могу получить исходный код для Rfast rowOrder функции? Похоже, его нет на их github, хотя код для другой функции, подобной Sort этой, есть.


РЕДАКТИРОВАТЬ: я хотел бы увидеть фактический cpp-код базовой функции, которая выполняет операции, которая в конце вызывается row_order_p

Ответ №1:

Комментарии:

1. Спасибо, Дирк, но я не вижу источника самой функции, только то, что они используют .Call(Rfast_row_order_p,x,stable,descending) , как вы думаете, есть ли способ увидеть код cpp того, что вызывается, .Call например, с помощью другой функции, которую я упомянул?

2. Нашел — он есть в утилитах.

3. Адаптация поиска Дирка: github.com/RfastOfficial/Rfast/search ? q=Rfast_row_order_p

Ответ №2:

Нашел его, он был в утилитах col / row по этому адресу: https://github.com/RfastOfficial/Rfast/blob/2cc0ddcaa1f6a4844733871b259ce44b9e48d279/src/col_row_utilities_p.cpp

 IntegerMatrix row_order_p(NumericMatrix x,const bool stable,const bool descending){
  const int ncl=x.ncol(),nrw=x.nrow();
  IntegerMatrix f(nrw,ncl);
  mat xx(x.begin(),nrw,ncl,false);
  imat ff(f.begin(),nrw,ncl,false);
  #ifdef _OPENMP
    #pragma omp parallel for
    #endif
    for(int i=0;i<nrw;  i){
      ff.row(i)=Order<irowvec,rowvec>(xx.row(i),stable,descending,1);
    }
    return f;
}
  

Комментарии:

1. Я думаю, что Дирк ответил на заданный вами вопрос о rowOrder функции, а не на вопрос, который вы, похоже, имели в виду , который касается базового кода Rfast_row_order_p .

2. Мне любопытно, хотя, что вы этого хотите?

3. Эй, Манос, надеюсь, чтение вашего исходного кода позволит мне повысить свои скудные навыки работы с c . Недостаточно прочитал исходный код, но это определенно того стоит. Я также искал быструю paste_by_row функцию, которая позволила бы мне быстро вставлять все столбцы фрейма данных по строкам, чтобы генерировать уникальные ключи строк, но пока мои усилия дают скорость, аналогичную той, что доступна в data.table . Есть предложения?