C概率库类似于R.

mih*_*jlv 3 c statistics r

有没有人知道有一些标准概率函数的C库,比如Rs样本函数?我找到了这个:

http://www.gnu.org/software/gsl/

我想知道是否有人有过任何经验(效率如何)以及是否还有其他任何经验.谢谢.

Dir*_*tel 7

您始终可以在您的C应用程序中嵌入R本身.这是可行的,并且有文档说明,但由于API非常简单,所以有点乏味.

如果您对C++ 持开放态度,那么感谢RInside会变得更容易.如果你能在R中这样做:

R> set.seed(123); sample(LETTERS[1:5], 10, replace=TRUE)
 [1] "B" "D" "C" "E" "E" "A" "C" "E" "C" "C"
R> 
Run Code Online (Sandbox Code Playgroud)

由于RInside,你可以很容易地用C++做同样的事情:

edd@max:~/svn/rinside/pkg/inst/examples/standard$ cat rinside_sample12.cpp
// Simple example motivated by StackOverflow question on using sample() from C
//
// Copyright (C) 2012  Dirk Eddelbuettel and Romain Francois

#include <RInside.h>                    // for the embedded R via RInside

int main(int argc, char *argv[]) {

  RInside R(argc, argv);                // create an embedded R instance

  std::string cmd = "set.seed(123); sample(LETTERS[1:5], 10, replace=TRUE)";

  Rcpp::CharacterVector res = R.parseEval(cmd);   // parse, eval + return result 

  for (int i=0; i<res.size(); i++) {
    std::cout << res[i] << " ";
  }
  std::cout << std::endl;

  exit(0);
}

edd@max:~/svn/rinside/pkg/inst/examples/standard$ 
Run Code Online (Sandbox Code Playgroud)

并且假设它使用相同的RNG种子运行相同的代码,它也返回相同的结果:

edd@max:~/svn/rinside/pkg/inst/examples/standard$ ./rinside_sample12
B D C E E A C E C C 
edd@max:~/svn/rinside/pkg/inst/examples/standard$ 
Run Code Online (Sandbox Code Playgroud)

如果你刚落,我的代码上面表明进入该目录examples/standard已有RInside安装的,并说make,该可执行文件将进行并给予相同基作为源文件(这里rinside_sample12rinside_sample12.cpp).