gpt4 book ai didi

Rcpp:为什么我不能在我定义的包中运行该函数?

转载 作者:行者123 更新时间:2023-12-04 15:59:21 24 4
gpt4 key购买 nike

我使用以下步骤来实现我自己的包:

1)我尝试编写一个非常简单的函数如下:

#include <Rcpp.h>
using namespace Rcpp;

// [[Rcpp::export]]
int foo() {
return 6;
}

2)我用骨架把它做成一个包:
Rcpp.package.skeleton("newpackage",example_code=FALSE,cpp_files=c("New.cpp"))

3)我用命令运行cpp:
source("~/newpackage/src/New.cpp")

4) 运行 compileAttributes 来加载包:
 compileAttributes(pkgdir="/home/tw72/newpackage",verbose = getOption("verbose"))

在此之后,我想在 R 中调用该函数:
foo <- function( )
{
.Call("foo",PACKAGE="newpackage")
}

然后错误是:
Error in .Call("foo", PACKAGE = "newpackage") :

“foo”不适用于 .Call() 包“newpackage”

我遇到了同样的 problem ,但我仍然无法弄清楚会发生什么。
你可以帮帮我吗?我上面的步骤有什么问题?谢谢。

最佳答案

从我的头顶看,它看起来很完整,但请尝试

R> Rcpp.package.skeleton("newpackage",
+ example_code=FALSE, ## useful but not required
+ cpp_files=c("New.cpp"), ## may not be required
+ attributes=TRUE) ## this is important
R>

作为两者 Rcpp modulesRcpp attributes需要开启。

之后,事情应该像你做的那样工作 compileAttributes .

编辑:它更简单。只要做 Rcpp.package.skeleton()我在上面概述的调用,即添加了 attributes=TRUE之后你就完成了——安装包并测试它。

关于Rcpp:为什么我不能在我定义的包中运行该函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16581166/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com