我如何运行Rcpp Hello World?

时间:2013-04-19 14:51:24

标签: r rcpp

好的,所以我创建了一个带有函数Rcpp.package.skeleton的R包 foo 。我还用

编译了Hello World C ++文件
R CMD SHLIB foo/src/rcpp_hello_world.cpp

然而,当我致电rcpp_hello_world时,我收到错误:

> source("foo/R/rcpp_hello_world.R")
> rcpp_hello_world()
Error in .Call("rcpp_hello_world", PACKAGE = "foo") : 
  "rcpp_hello_world" not available for .Call() for package "foo"

任何线索?

2 个答案:

答案 0 :(得分:6)

“包骨架”意味着您应该跟随(简单的,骨架)包的创建(可选)构建包(到tar中)。 gz)以及安装它。

安装 后,您可以加载,然后您可以实际执行新功能。

或者,您可以通过Rcpp属性和/或内联包进行操作。

答案 1 :(得分:1)

运行" hello world"例如,执行以下操作:

  1. 启动R并通过以下方式安装Rcpp软件包:

      

    install.packages(' RCPP&#39)

  2. 在R:

    中生成Rcpp模板
      

    Rcpp.package.skeleton(" mypackage的&#34)

  3. 接下来,为包创建一个存档:

      

    R CMD构建mypackage

  4. 退出R.你应该看到一个文件夹" mypackage"产生。键入以下内容以检查包:

      

    R CMD检查mypackage

  5. 现在,您将看到存档mypackage_1.0.tar.gz。安装它:

      

    R CMD安装mypackage_1.0.tar.gz

  6. 让我们在R. Start R中运行包并执行以下操作:

      

    库(' mypackage的&#39)

         

    rcpp_hello_world()#尝试在模板中生成的C ++函数

         

    [[1]]   [1]" foo" "杆"

         

    [[2]]   [1] 0 1