Hola, Tengo algunos ejemplos de analisis estadisticos que han sido implementados en Matlab y me gustaria traducirlos a R. Existe algun traductor de "Matlab to R" o tengo que hacerlo manualmente? Gracias y saludos, Pablo
Hola, quizás una solución sería llamar a MatLab desde R o viceversa. MatLab llama a R: con la toolbox R link http://www.mathworks.com/matlabcentral/fileexchange/5051 Deberás instalar también un puente D(COM) al estilo del que usan en RExcel http://rcom.univie.ac.at/ R llama a MatLab: Con rcom en la misma página de antes. Saludos> Hola, > > Tengo algunos ejemplos de analisis estadisticos que han sido implementados > en Matlab y me gustaria traducirlos a R. > > Existe algun traductor de "Matlab to R" o tengo que hacerlo manualmente? > > Gracias y saludos, > > Pablo > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >jm~ _______________________________ J. Miguel Marin http://www.est.uc3m.es/jmmarin Dep. of Statistics University Carlos III of Madrid Spain (E.U.)
Gracias por la alternativa, pero entiendo que para esto necesito Matlab y no lo tengo. Ademas, quiero tener el codigo traducido asi puedo modificar los ejemplos. Gracias de todos modos. Pablo ----- Original Message ----- From: "J. Miguel Marin" <jmmarin en est-econ.uc3m.es> To: <r-help-es en r-project.org> Sent: Wednesday, December 09, 2009 10:48 AM Subject: Re: [R-es] Matlab to R Hola, quizás una solución sería llamar a MatLab desde R o viceversa. MatLab llama a R: con la toolbox R link http://www.mathworks.com/matlabcentral/fileexchange/5051 Deberás instalar también un puente D(COM) al estilo del que usan en RExcel http://rcom.univie.ac.at/ R llama a MatLab: Con rcom en la misma página de antes. Saludos> Hola, > > Tengo algunos ejemplos de analisis estadisticos que han sido implementados > en Matlab y me gustaria traducirlos a R. > > Existe algun traductor de "Matlab to R" o tengo que hacerlo manualmente? > > Gracias y saludos, > > Pablo > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >jm~ _______________________________ J. Miguel Marin http://www.est.uc3m.es/jmmarin Dep. of Statistics University Carlos III of Madrid Spain (E.U.) _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Hola Pablo. La manera más directa de "conectar" Matlab y R es a través del package R.matlab Te pongo aquí un pequeño ejemplo para que veas como se haría.... Lo que construiremos será una conexión cliente/servidor entre R (cliente) y Matlab (server). # Para ello cargamos la librería library(R.matlab) # Establecemos la conexión entre los dos programas Matlab$startserver() # Asignamos el host a una variable matlab<-Matlab(host="localhost") # usamos la función "evaluate" para ejecutar código (de ejmplo) en Matlab evaluate(matlab,"u=rand(1,1000);") # usamos la función "getVariable" para traernos a R el resultado u<-getVariable(matlab,"u") ... Vaya.... Escribiendo este correo acabo de leer otro tuyo en el que cuentas que no tienes Matlab (supongo que sí tendrás Octave, de todas formas....). Bueno, pues olvida todo esto (que no borro porque es una pena... Ya que me he pasado el trabajo de escribirlo...). :-) Un comentario al margen; dentro de ese paquete puedes usar las funciones readMAT() y writeMAT() sin tener Matlab (aunque me temo que tu menor problema es leer ficheros Matlab de datos). Por lo que cuentas, creo que debieras explorar la posibilidad de migrar el código de MatLab a R con algún paso intermedio (Fortran, por ejemplo).... Me suena que desde Octave se usa la función mkoctfile() para cosas parecidas... No sé exactamente cómo hace Matlab, aunque me suena que puedes crear archivos MEX (cuidado que igual estoy metiendo la pata... No recuerdo si los MEX son para ejecutar código Fortran en Matlab o viceversa). Simplemente estoy intentado darte alguna idea por si te sirve de algo. Vamos, que después de haber escrito todo esto, creo que no vale de nada! :-( Un Saludo, Miguel. -----Mensaje original----- De: r-help-es-bounces en r-project.org [mailto:r-help-es-bounces en r-project.org] En nombre de Pablo Emilio Verde Enviado el: miércoles, 09 de diciembre de 2009 10:25 Para: r-help-es en r-project.org Asunto: [R-es] Matlab to R Hola, Tengo algunos ejemplos de analisis estadisticos que han sido implementados en Matlab y me gustaria traducirlos a R. Existe algun traductor de "Matlab to R" o tengo que hacerlo manualmente? Gracias y saludos, Pablo _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es Nota: A información contida nesta mensaxe e os seus posibles documentos adxuntos é privada e confidencial e está dirixida únicamente ó seu destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe, por favor elimínea. A distribución ou copia desta mensaxe non está autorizada. Nota: La información contenida en este mensaje y sus posibles documentos adjuntos es privada y confidencial y está dirigida únicamente a su destinatario/a. Si usted no es el/la destinatario/a original de este mensaje, por favor elimínelo. La distribución o copia de este mensaje no está autorizada. See more languages: http://www.sergas.es/aviso_confidencialidad.htm XACOBEO 2010: http://www.xacobeo.org
No creo que vayas a tener suerte. Habrá que cambiar el código a mano. Además, Matlab y R siguen paradigmas de programación distintos. Aunque en Matlab muchas operaciones pueden vectorizarse, en la práctica, ocurre poco. El intérprete de Matlab es bastante más eficiente que el de R (y, además, es posible traducir de matlab a C) por lo que se tiende a vectorizar menos. (A todo esto, la vía de volcar a C, compilar el C y enlazarlo con R, estoy casi seguro, supondría una violación de licencia si el paquete resultante quisiera ser distribuido como GPL). Otra idea sería utilizar Octave y ROctave (http://www.omegahat.org/ROctave/). Octave debería ser capaz de correr código de Matlab. ¿Qué es lo que existe en Matlab y no en R? Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com
Existe en CRAN un paquete con el nombre matlab, que contiene implementaciones en R de varios funciones usuales de matlab, así que ayuda en la traducción. Kjetil 2009/12/9 Carlos J. Gil Bellosta <cgb en datanalytics.com>:> No creo que vayas a tener suerte. Habrá que cambiar el código a mano. > > Además, Matlab y R siguen paradigmas de programación distintos. Aunque > en Matlab muchas operaciones pueden vectorizarse, en la práctica, > ocurre poco. > > El intérprete de Matlab es bastante más eficiente que el de R (y, > además, es posible traducir de matlab a C) por lo que se tiende a > vectorizar menos. > > (A todo esto, la vía de volcar a C, compilar el C y enlazarlo con R, > estoy casi seguro, supondría una violación de licencia si el paquete > resultante quisiera ser distribuido como GPL). > > Otra idea sería utilizar Octave y ROctave > (http://www.omegahat.org/ROctave/). Octave debería ser capaz de correr > código de Matlab. > > ¿Qué es lo que existe en Matlab y no en R? > > Un saludo, > > Carlos J. Gil Bellosta > http://www.datanalytics.com > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- "... an entire human genome would fit on a music CD." --- www.thinkgene.com
Parece que usar Octave y ROctave puede ser util para correr los programs. Pero para traducir tendre que tener tiempo. Voy a ver lo que sugiere Kjetil sobre el paquete "matlab". Bueno, muchas gracias a todos! Pablo. ----- Original Message ----- From: "Carlos J. Gil Bellosta " <cgb en datanalytics.com> To: "Pablo Emilio Verde" <PabloEmilio.Verde en uni-duesseldorf.de> Cc: <r-help-es en r-project.org> Sent: Wednesday, December 09, 2009 12:31 PM Subject: Re: [R-es] Matlab to R No creo que vayas a tener suerte. Habrá que cambiar el código a mano. Además, Matlab y R siguen paradigmas de programación distintos. Aunque en Matlab muchas operaciones pueden vectorizarse, en la práctica, ocurre poco. El intérprete de Matlab es bastante más eficiente que el de R (y, además, es posible traducir de matlab a C) por lo que se tiende a vectorizar menos. (A todo esto, la vía de volcar a C, compilar el C y enlazarlo con R, estoy casi seguro, supondría una violación de licencia si el paquete resultante quisiera ser distribuido como GPL). Otra idea sería utilizar Octave y ROctave (http://www.omegahat.org/ROctave/). Octave debería ser capaz de correr código de Matlab. ¿Qué es lo que existe en Matlab y no en R? Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Curiosamente, esta misma discusión la están teniendo en R-sig-finance ahora mismo. El hilo se llama "[R-SIG-Finance] disaggregation, R and Matlab" Aún no está disponible en google pero imagino que quedará archivada en algún sitio... Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com
Hola Pablo: Por si te sirve... Yo hace años tenía unos scripts en matlab de procesado de datos y visualización de gráficos, y los convertí a R para poder publicar la tesis, codigo fuente de un modelo de balances de masa en ecosistemas (fortran 90) y los scripts de visualización de gráficos (en R) con licencias libres (GPL y CC-by-sa). Si bien no tuve que convertir funciones estadísticas en mi caso (no las usé), me ayudó mucho un documento que compara de forma tabulada la sintaxis en matlab, scipy, octabe, scilab y R de las principales funciones. Un pdf que me fue de fábula en la semanas que me llevó convertir el código. Había mirado opciones hi-tech de usar arrchivos MEX, pasar por C, y no sé queé otras cosas semi automáticas más (que me acabaron dando problemas y no me aseguraban el éxito en la conversión efectiva a R). Así que opté por el camino lento pero seguro: convertir a mano los scripts. Por si te sirve de ejemplo te dejo el enlace del "pdf" que me sacó del apuro a mi en verano del 2007: http://mathesaurus.sourceforge.net/matlab-python-xref.pdf y la url de los scripts sencillos de matlab originales míos y los convertidos a R. http://sourceforge.net/projects/ommel/ Por si sirve de algo... Saludos Xavi P.d: Ups, acabo de hacer una búsqueda rápida, y parece que efectivamente en estos dos años puede haber documentos más fáciles para ayudarte en a migración. A bote pronto, "San Google" me indica: http://www.math.umaine.edu/~hiebeler/comp/matlabR.pdf En/na miguel.angel.rodriguez.muinos en sergas.es ha escrit:> Hola Pablo. > > La manera más directa de "conectar" Matlab y R es a través del package R.matlab > Te pongo aquí un pequeño ejemplo para que veas como se haría.... Lo que construiremos será una conexión cliente/servidor entre R (cliente) y Matlab (server). > > # Para ello cargamos la librería > library(R.matlab) > # Establecemos la conexión entre los dos programas > Matlab$startserver() > # Asignamos el host a una variable > matlab<-Matlab(host="localhost") > # usamos la función "evaluate" para ejecutar código (de ejmplo) en Matlab > evaluate(matlab,"u=rand(1,1000);") > # usamos la función "getVariable" para traernos a R el resultado > u<-getVariable(matlab,"u") > > ... Vaya.... Escribiendo este correo acabo de leer otro tuyo en el que cuentas que no tienes Matlab (supongo que sí tendrás Octave, de todas formas....). Bueno, pues olvida todo esto (que no borro porque es una pena... Ya que me he pasado el trabajo de escribirlo...). > :-) > > Un comentario al margen; dentro de ese paquete puedes usar las funciones readMAT() y writeMAT() sin tener Matlab (aunque me temo que tu menor problema es leer ficheros Matlab de datos). > > Por lo que cuentas, creo que debieras explorar la posibilidad de migrar el código de MatLab a R con algún paso intermedio (Fortran, por ejemplo).... Me suena que desde Octave se usa la función mkoctfile() para cosas parecidas... No sé exactamente cómo hace Matlab, aunque me suena que puedes crear archivos MEX (cuidado que igual estoy metiendo la pata... No recuerdo si los MEX son para ejecutar código Fortran en Matlab o viceversa). Simplemente estoy intentado darte alguna idea por si te sirve de algo. > > Vamos, que después de haber escrito todo esto, creo que no vale de nada! > :-( > > Un Saludo, > Miguel. > > > > -----Mensaje original----- > De: r-help-es-bounces en r-project.org [mailto:r-help-es-bounces en r-project.org] En nombre de Pablo Emilio Verde > Enviado el: miércoles, 09 de diciembre de 2009 10:25 > Para: r-help-es en r-project.org > Asunto: [R-es] Matlab to R > > Hola, > > Tengo algunos ejemplos de analisis estadisticos que han sido implementados en Matlab y me gustaria traducirlos a R. > > Existe algun traductor de "Matlab to R" o tengo que hacerlo manualmente? > > Gracias y saludos, > > Pablo > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > > > > > > Nota: A información contida nesta mensaxe e os seus posibles documentos adxuntos é privada e confidencial e está dirixida únicamente ó seu destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe, por favor elimínea. A distribución ou copia desta mensaxe non está autorizada. > > Nota: La información contenida en este mensaje y sus posibles documentos adjuntos es privada y confidencial y está dirigida únicamente a su destinatario/a. Si usted no es el/la destinatario/a original de este mensaje, por favor elimínelo. La distribución o copia de este mensaje no está autorizada. > > See more languages: http://www.sergas.es/aviso_confidencialidad.htm > > XACOBEO 2010: http://www.xacobeo.org > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >