Tôi muốn biết nếu có cách nào để tạo các hàm Rcpp
bằng cách sử dụng các gói inline
trong chức năng chính. Đây là một ví dụ về những gì tôi muốn làm:Rcpp + nội tuyến - tạo và gọi các chức năng bổ sung
library(inline)
library(Rcpp)
a = 1:10
cpp.fun = cxxfunction(signature(data1="numeric"),
plugin="Rcpp",
body="
int fun1(int a1)
{int b1 = a1;
b1 = b1*b1;
return(b1);
}
NumericVector fun_data = data1;
int n = data1.size();
for(i=0;i<n;i++){
fun_data[i] = fun1(fun_data[i]);
}
return(fun_data);
")
mà nên kết quả trong:
> cpp.fun(a)
[1] 1 4 9 16 25 36 49 64 81 100
Tuy nhiên tôi biết rằng trình biên dịch sẽ không chấp nhận việc tạo ra các chức năng của riêng bạn trong các phương pháp chính. Làm cách nào để tôi tạo và gọi một hàm Rcpp
khác với inline
mà không phải chuyển qua R?
Cảm ơn bạn đã tip. – honeyoak
Chắc chắn. Chào mừng bạn trên Stack Overflow. Xin vui lòng upvote và chấp nhận câu trả lời này nếu nó phù hợp với bạn. (hãy truy cập http://stackoverflow.com/faq nếu bạn không biết ý tôi là gì) –