
*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.