<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
h3
        {mso-style-priority:9;
        mso-style-link:"T\00EDtulo 3 Car";
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:13.5pt;
        font-family:"Calibri",sans-serif;
        color:windowtext;
        font-weight:bold;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.Ttulo3Car
        {mso-style-name:"T\00EDtulo 3 Car";
        mso-style-priority:9;
        mso-style-link:"T\00EDtulo 3";
        font-family:"Calibri",sans-serif;
        font-weight:bold;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 3.0cm 70.85pt 3.0cm;}
div.WordSection1
        {page:WordSection1;}
--></style></head><body lang=ES link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Estimado Miguel</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Creo que no vale la pena discutir si es o no es orientado a objetos, hay otras preguntas:</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>¿Tiene capacidad de soportar POO? Si.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>¿Tiene capacidad de programación funcional? Si, ayer pase un link del libre de Hadley Wickham que lo trata.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Ahora otro lenguaje C#, C++, java, ¿pueden programar sin usar objetos?, sin usarlos se complica, cosa que no pasa con R, o Microsoft no desarrollaría F#.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>R tiene un poco de cada uno, yo aprendí R con lo que sabía de fortran, sobre objetos aprendí mucho tiempo después. R no es un lenguaje “clásico”, aunque se esté transformando en el “clásico de la estadística”.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Javier Rubén Marcuzzi</p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal style='border:none;padding:0cm'><b>De: </b><a href="mailto:miguel.angel.rodriguez.muinos@sergas.es">miguel.angel.rodriguez.muinos@sergas.es</a><br><b>Enviado: </b>jueves, 16 de marzo de 2017 7:33<br><b>Para: </b><a href="mailto:javier.ruben.marcuzzi@gmail.com">javier.ruben.marcuzzi@gmail.com</a>; <a href="mailto:cgb@datanalytics.com">cgb@datanalytics.com</a><br><b>CC: </b><a href="mailto:r-help-es@r-project.org">r-help-es@r-project.org</a><br><b>Asunto: </b>Re: [R-es] R <- POO</p></div><p class=MsoNormal><o:p> </o:p></p><p>Sigo estando en desacuerdo contigo, Javier.</p><p>R es, claramente, un lenguaje de Programación Orientado a Objetos (POO, OOP, o como quieras llamarlo). Maneja clases (con sus propiedades, métodos, propiedades, estados, ...), herencia, polimorfismo, ....</p><p>Otra cosa es que quieras usar R de otra manera (programación estructurada, modular, funcional, ...)</p><p>Un saludo,<br>Miguel.</p><p><o:p> </o:p></p><p class=MsoNormal><span style='color:black'><o:p> </o:p></span></p><div><p class=MsoNormal><span style='color:black'>El 15/03/2017 a las 16:32, <a href="mailto:javier.ruben.marcuzzi@gmail.com">javier.ruben.marcuzzi@gmail.com</a> escribió:<o:p></o:p></span></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal><span style='color:black'>Estimados <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>Yo me refería a esto:<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'><a href="https://stat.ethz.ch/R-manual/R-devel/library/base/html/class.html">https://stat.ethz.ch/R-manual/R-devel/library/base/html/class.html</a><o:p></o:p></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>Interpreto que la traducción dice algo como que es una función con un mecanismo simple y genérico que puede ser utilizado como un estilo de programación orientada a objetos.<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>Sin entrar en partes muy técnicas.<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>En un lenguaje orientado a objetos como c#, creo una clase con atributos, luego puedo crear una lista para estos, algo como List<autos> lista_de_autos.<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>Otra forma sería algo como List<T>, donde no coloco el objeto creado por la clase autos. T se daría cuenta. <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>R interpreto que tiene un mecanismo semejante a este último. Si realizo str(algo), por decirlo de alguna forma me trae los atributos de un objeto ya definido, pero altura <- 1.85 sería una variable, que R permite ser llamada como un objeto.<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>R tiene partes en C/C++ que tiene objetos, pero en Fortran no se utilizan objetos, yo nunca tuve que iniciar una instancia de una matriz en Fortran, en R tampoco tuve que iniciar una instancia de una matriz, ni colocar partes pública o privadas, hay partes distintas en los lenguajes, o herencia entre dos data.frame.<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>Comparo nuevamente con C#<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>Var altura = 1,85 es una variable.<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>Persona.altura = 1,85 es un valor dentro del objeto<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>En R altura <- 1,85 puede trabajarse como variable u objeto (porque tiene una función simple y genérica que puede ser utilizada como programación orientada a objetos, entiendo que por library/base/class).<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>Por eso escribí que no es orientado a objetos pero que hay formas de trabajarlo como objetos. Luego hay diferencias como función y método,  pero el efecto es lo mismo, las diferencias no nos complica la vida, salvo si por lo que yo nombre como cajas se confunda con crear clases para definir objetos, en R no necesitamos definir una clase para llenar un data.frame. Sin embargo permite crear objetos y ser trabajado como OOP, en R se pueden usar varias alternativas.<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'><a href="https://www.r-bloggers.com/oo-in-r/">https://www.r-bloggers.com/oo-in-r/</a><o:p></o:p></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>R permite más de un estilo de programación.<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>Javier Rubén Marcuzzi<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span style='color:black'>De: </span></b><span style='color:black'><a href="mailto:cgb@datanalytics.com">Carlos J. Gil Bellosta </a><br><b>Enviado: </b>miércoles, 15 de marzo de 2017 11:14<br><b>Para: </b><a href="mailto:miguel.angel.rodriguez.muinos@sergas.es">miguel angel rodriguez muinos</a><br><b>CC: </b><a href="mailto:javier.ruben.marcuzzi@gmail.com">Javier Marcuzzi</a>; <a href="mailto:m.monsalvo@gmail.com">Mauricio Monsalvo</a>; <a href="mailto:r-help-es@r-project.org">r-help-es</a><br><b>Asunto: </b>Re: [R-es] R <- POO<o:p></o:p></span></p></div><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><div><p class=MsoNormal><span style='color:black'>De hecho, dos de los principios de diseño de R son:<o:p></o:p></span></p><div><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:black'>1) Todo lo que existe es un objeto.<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:black'>2) Todo lo que sucede es una llamada a una función.<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:black'>Un saludo,<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:black'>Carlos J. Gil Bellosta<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:black'><a href="http://www.datanalytics.com">http://www.datanalytics.com</a><o:p></o:p></span></p></div></div><div><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><div><p class=MsoNormal><span style='color:black'>El 15 de marzo de 2017, 14:22, <<a href="mailto:miguel.angel.rodriguez.muinos@sergas.es" target="_blank">miguel.angel.rodriguez.muinos@sergas.es</a>> escribió:<o:p></o:p></span></p><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt'><p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:50.4pt'><span style='color:black'>Disiento, Javier.<br><br>R sí es un lenguaje orientado a objetos.<br><br>:-)<br><br><br>Un saludo,<br>Miguel.<br><br><br><br>El 15/03/2017 a las 13:43, <a href="mailto:javier.ruben.marcuzzi@gmail.com">javier.ruben.marcuzzi@gmail.com</a><mailto:<a href="mailto:javier.ruben.marcuzzi@gmail.com">javier.ruben.marcuzzi@gmail.com</a>> escribió:<br><br>R es un lenguaje medio complicado, no es orientado a objetos, aunque hay formas para un trabajo con objetos, por otro lado se puede definir una función o emplear 5 paquetes para lo mismo en dos líneas de código.<br><br><o:p></o:p></span></p></blockquote></div></div></blockquote><p class=MsoNormal><span style='color:black'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:black'><img border=0 width=708 height=1 style='width:7.375in;height:.0104in' id="Horizontal_x0020_Line_x0020_1" src="cid:image002.png@01D29E2A.407E9BE0"></span><span style='color:black'><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:7.5pt;font-family:"Arial",sans-serif;color:gray'><br>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.<br><br>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.<br><br>See more languages: http://www.sergas.es/aviso-confidencialidad</span><span style='color:black'><o:p></o:p></span></p><p class=MsoNormal><span style='color:black'><o:p> </o:p></span></p></div></body></html>