Alguém tem experiência com desenvolvimento de R no Windows? Instalei o Rtools e adicionei as variáveis de ambientes. Estou conseguindo iniciar o R no DOS e também o gcc. Mas o Rtools não está conectado. Minha máquina é 64bits e o sistema é Windows 7.

Em 25 de agosto de 2011 17:10, Pedro Rafael <pedro.rafael.marinho@gmail.com> escreveu:
Eu tava fazendo seguindo esse vídeo tutorial: http://www.youtube.com/watch?v=WIihUvQwYTA

Em 25 de agosto de 2011 17:05, beniltoncarvalho [via R-br] <ml-node+3769255-1291827254-223914@n4.nabble.com> escreveu:

Voce vai precisar ler mesmo o material do manual e, para uma versao
expressa, ver as notas de aula que postei no topico ao qual referi-me
anteriormente.

1) Minha recomendacao (e de todo mundo que usa R+C) e' vc gerar a
biblioteca usando:

R CMD SHLIB arquivo.c

2) Quando o R conversa com o C, tudo o que o C enxerga sao ponteiros.
Entao, toda a comunicacao C <-> R deve ser feita via ponteiros.

Dito isso, seu programa precisa ser ligeiramente modificado:


/* INICIO */
/*
  Programa: exfun.c
  Objetivo; Primeiro exemplo de uso de funcao
  Autor: Adriano Cruz
  Data: 12/10/97
*/
#include<stdio.h>

/* Prototipo da funcao */
int soma(int, int);


/* Funcao Principal */
void fPrincipal(double *resultado)
{
     int a=5, b=9;
     resultado[0] = soma(a,b);
}

/* Definicao da funcao */
int soma(int a, int b)
{
    return a+b;
}

/* FIM */

Depois disso, compile-o usando:

R CMD SHLIB arquivo.c

(preste atencao qual arquivo sera' gerado, pq nao to muito certo de
que em Windows sera' um .so, imagino que seja um DLL).

Carregue o R e use:

dyn.load("arquivo.dll")
x = .C("fPrincipal", double(1))

Abaixo e' o q eu tenho:

> dyn.load("teste.so")
> x = .C("fPrincipal", as.double(1))
> x
[[1]]
[1] 14

O segundo argumento em .C() que vc ve, e' reservando, no R, memoria
para 1 numero real, que o programa em C usa para gravar a resposta.

b
_______________________________________________
R-br mailing list
[hidden email]
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.



If you reply to this email, your message will be added to the discussion below:
http://r-br.2285057.n4.nabble.com/R-br-Duvida-Invocar-funcoes-C-no-R-tp3768159p3769255.html
To unsubscribe from R-br, click here.



--
Saudações,
Pedro Rafael Diniz Marinho.





--
Saudações,
Pedro Rafael Diniz Marinho.