Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 将C代码程序包装到R中:Rcpp的替代方案?_Mysql_C_R_Rcpp - Fatal编程技术网

Mysql 将C代码程序包装到R中:Rcpp的替代方案?

Mysql 将C代码程序包装到R中:Rcpp的替代方案?,mysql,c,r,rcpp,Mysql,C,R,Rcpp,我有一个完全用C编写的包,它创建一个mySQL表并执行查询 假设R是用C编写的,那么除了使用Rcpp围绕C代码编写包装器来构造R包之外,还有其他方法吗?或者Rcpp是实现这一点的最佳方法(或唯一可用的方法) 不需要从R调用任何C代码,这在编写R扩展时有记录。因此,如果出于某种原因(我可以想到一些原因)希望避免使用Rcpp,那么可以使用RCAPI。它通常需要更多的工作和更多的照顾 在C++中,有很多包使用C或C++,没有Rcpp,这是一个例子。p> 不需要从R调用任何C代码,这在编写R扩展时有记录

我有一个完全用C编写的包,它创建一个mySQL表并执行查询


假设R是用C编写的,那么除了使用Rcpp围绕C代码编写包装器来构造R包之外,还有其他方法吗?或者Rcpp是实现这一点的最佳方法(或唯一可用的方法)

不需要从R调用任何C代码,这在编写R扩展时有记录。因此,如果出于某种原因(我可以想到一些原因)希望避免使用Rcpp,那么可以使用RCAPI。它通常需要更多的工作和更多的照顾


在C++中,有很多包使用C或C++,没有Rcpp,这是一个例子。p> 不需要从R调用任何C代码,这在编写R扩展时有记录。因此,如果出于某种原因(我可以想到一些原因)希望避免使用Rcpp,那么可以使用RCAPI。它通常需要更多的工作和更多的照顾


在C++中,有很多包使用C或C++,没有Rcpp,这是一个例子。p> 对于S lang的向后兼容性,您可能会发现“有用”了解:

.C()
.Call()


Rcpp是当今重用现有代码的最现代、最高效和最接近的选项。

对于S lang的向后兼容性,您可能会发现“有用”了解:

.C()
.Call()


Rcpp是当今重用现有代码的最现代、性能最好、最接近的选项。

当然,您可以从R调用C函数,看看本教程:许多使用Rcpp的CRAN包都非常感谢,包括一些db连接包,如RMariaDB(更新的RMySQL客户端)。除了Geyer教程之外,官方手册描述了C API。您当然可以使用这种方法,但它可能不会导致代码缩短。Rcpp使不使用它变得太容易了。只要你把C写得好,你就不需要重写任何东西。还有很多例子。我一直在为C++编写包装器。从不需要修改我调用的C函数。曾经(好吧,除了删除对输出和错误设备的禁止调用或“停止”——如果您想在CRAN上使用它,您无论如何都不能使用的东西)以及我们一直告诉您的:CRAN上有1200多个示例。学习一些。当然,你可以从R调用C函数,看看本教程:许多使用Rcpp的CRAN包,包括一些db连接包,如RMariaDB(更新的RMySQL客户端)。除了Geyer教程之外,官方手册还介绍了C API。您当然可以使用这种方法,但它可能不会导致代码缩短。Rcpp使不使用它变得太容易了。只要你把C写得好,你就不需要重写任何东西。还有很多例子。我一直在为C++编写包装器。从不需要修改我调用的C函数。曾经(好吧,除了删除对输出和错误设备的禁止调用或“停止”——如果您想在CRAN上使用它,您无论如何都不能使用的东西)以及我们一直告诉您的:CRAN上有1200多个示例。学习一些。或者向我们展示具体的代码来帮助您。
.C()
界面是大家都不喜欢的,请参阅过去几年关于
r-devel
的共识讨论。
.C()
界面是大家都不喜欢的,请参阅过去几年关于
r-devel
的共识讨论。感谢
工具::CRAN_package\u db()
我们现在可以很容易地看到实际拥有
src/
目录的软件包所占的百分比,然后看看选择使用或不使用Rcpp的软件包所占的百分比(这里还包括Java和Fortran)。我上次这么做的时候,这个比例高达30%,但一直在稳步增长。因此,是的,大多数使用编译代码的包都不使用Rcpp(现在)。但是如果我们看一看较新的软件包,我怀疑它会超过其中的一半。“如果你想出于某种原因(我可以想出一些原因)避免使用Rcpp,你会想到什么原因?多亏了
tools::CRAN\u package\u db()
我们现在可以很容易地看到软件包中实际有
src/
目录的百分比,然后看看有多大比例的人选择使用或不使用Rcpp(暂时忘了我们这里还包括Java和Fortran)。我上次这么做的时候,这个比例高达30%,但一直在稳步增长。因此,是的,大多数使用编译代码的包都不使用Rcpp(现在)。但如果我们看一看更新的软件包,我怀疑它会超过其中的一半。“如果你出于某种原因(我可以想出一些原因)想避免使用Rcpp”,你会想到什么原因?