[R] Answer to help in R calling C function

Lei Liu liulei at l.imap.itd.umich.edu
Sun Jun 27 19:55:03 CEST 2004


Hi there,

Thank you all for your timely response. I find the right way to do it. 
There is a good example in Dr. Burns website:

http://www.burns-stat.com/pages/Spoetry/Spoetry.pdf

Page 174.

So this is the right way to do:

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>

double test(double alpha)
{
	double value;
	value = alpha *3;
	return(value);
}


void main2(double *alpha, double *beta)
{
	double test(double);
	*beta= *alpha *2 + test(*alpha);
}

After compiling it by MINGW,  you can use the following code in R:

dyn.load("c:/Program Files/R/rw1060/bin/main2.dll")
a=4.2
b=0
c=.C('main2', as.double(a), as.double(b))[[2]]

Hope this helps!

Sincerely,

Lei Liu




More information about the R-help mailing list