używam następujące kroki, aby osiągnąć mój własny pakiet:Rcpp: dlaczego nie mogę uruchomić funkcji w moim zdefiniowanym pakiecie?
1) Staram się pisać bardzo prostą funkcję w następujący sposób:
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
int foo() {
return 6;
}
2) Używam szkielet, aby go w opakowaniu:
Rcpp.package.skeleton("newpackage",example_code=FALSE,cpp_files=c("New.cpp"))
3) uruchomić CPP poleceniem:
source("~/newpackage/src/New.cpp")
4) Uruchom compileAttributes załadować pakiet:
compileAttributes(pkgdir="/home/tw72/newpackage",verbose = getOption("verbose"))
Po tym chcę wywołać funkcję w R:
foo <- function()
{
.Call("foo",PACKAGE="newpackage")
}
Następnie błąd jest:
Error in .Call("foo", PACKAGE = "newpackage") :
"foo" nie dostępne dla .Call() dla pakietu "newpackage"
Spotkałem ten sam problem, ale nadal mogę nie wiem, co się dzieje. Czy możesz mi pomóc? Co jest nie tak z powyższymi krokami? Dzięki.
Dziękuję za odpowiedź! Próbuję, ale kiedy używam foo <- function() { .Call ("foo", PACKAGE = "newpackage") } Spotkałem ten sam problem. Ale kiedy zmieniłem to w ten sposób: foo <- function() { .Call ("newpackage_foo", PACKAGE = "newpackage") } To działa. – user2380245
Co zrobić, jeśli mam wiele plików C++? – qed
Wszystkie zmienne w R są wektorami. Lista wszystkich w 'cpp_files'. –