Pedro,

em geral quando você tem vários FOR aninhados você pode substituí-los por sapply, lapply ou genéricos. Cada caso é um caso e deve ser avaliado com cuidado.

Particularmente, pretendo desenvolver em C um conjunto de funções antigas do Prof. Ruben que rodam em FORTRAN (apenas em compiladores mais antigos) para que possamos usá-las dentro do R, ganhando um precioso tempo, entre exportar, rodar e importar os dados novamente.

Atenciosamente,
Leandro Marino
http://www.leandromarino.com.br (Fotógrafo)
http://est.leandromarino.com.br/Blog (Estatístico)
Cel.: + 55 21 9845-7707
Cel.: + 55 21 8777-7907



Em 26 de agosto de 2011 15:39, Benilton Carvalho <beniltoncarvalho@gmail.com> escreveu:
Exato, o .Call() oferece uma melhor interface com o R e tambem permite
que vc retorne objetos para o R. O lance do PROTECT() e' pq o R possui
um sistema de "garbage collection", entao se vc nao proteger a sua
variavel em C (via .Call) o R vai acabar "limpando" o espaco de
memoria usado pelo C e coisas inesperadas vao acontecer.

O legal de usar .C(), como eu comentei anteriormente e voce notou, e'
que voce pode fazer seu programa C independente do R... dai', se for
usar com o R, e' apenas dar-se ao trabalho de criar uma funcaozinha
que receba os ponteiros do R e passe os argumentos apropriados para a
funcao C.

b
_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
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.