Closed farcego closed 4 years ago
Me parece estupendo empezar por crear funciones antes de entrar en paquetes. Si te parece añado el tag "help wanted" a ver si alguien se anima a colaborar.
Muchas gracias!. A ver si alguien mas se anima. He detectado un problemilla en la "pildora" que ando haciendo para nuestro lab retreat, ya que roxygen no esta tan bien integrado en RStudio como en otros IDEs (emacs-ess). En emacs, es muy sencillo visualizar la ayuda escrita en roxygen en formato html, al mas clasico estilo R, mientras que en RStudio, al menos de momento, no soporta esa funcionalidad directamente (o al menos yo no la he encontrado). Seguro que algun usuario de RStudio puede echar un cable :) Saludos Fer
En RStudio si das a "document" te creara los .md de la ayuda en la carpeta man. Los .md los puedes visualizar tan facilmente como los html's.
ordenando y trabajando en el issue de dataviz he encontrado la carpeta donde tengo unos tips sobre crear funciones. Con dummy example y un "ejemplo real". Lo lanzo aqui a la vez que lance el de dataviz
Hola compañeros: no sé si es demasiado tarde pero me gustaría colaborar con la nota de creación de funciones.
Yo creo que tu ayuda nos viene genial. @farcego esta acabando otra nota (verdad, Fernando? ;) y quizas tu puedas liderar esta? Lo hablais entre vosotros. Gracias!
OK, a ver qué dice Fernando. Yo puedo ir redactando un borrador mientras tanto.
Hola: no he recibido respuesta de Fer, así que acabo de hacer un pull request con un borrador. Si se quiere apuntar alguien y sugerir alguna cosa importante que me haya dejado, es fácil.
Mil Gracias, y siento el parón veraniego. Ahora mismo lo envio a la lista para hacer revisión grupal.
Algunos detalles:
L122. queda patente
L133-135. La función que has escrito no me funciona. Para que me funcione he tenido que sustituir max(X) por max(x$X)
Me ha resultado muy interesante la parte de los métodos S3.
Saludos Alfonso
Las líneas corresponden al docx.
Muy interesante y didáctica la nota. Mejor cambia "Orlóci" en lugar de "Orl’oci" en L. 75 y 176. Saludos, Emili
También cambia "distancia euclídea" en lugar de "distancia ecuclídea" (L. 75 y 87).
Hola! En la línea 162, debería poner {r, , eval = FALSE}
Si no, da un error cuando se hace knitr
{r, eval = FALSE} quería decir
Hola! En la línea 162, debería poner {r, , eval = FALSE} Si no, da un error cuando se hace knitr
Gracias, Irene. El error ocurre por que, como había detectado Alfonso, en el código del método print debería poner max(x$X) en vez de max(X)
También cambia "distancia euclídea" en lugar de "distancia ecuclídea" (L. 75 y 87).
Gracias, Emili.
Marcelino, estupendo trabajo. He hecho comentarios menores directamente en el texto. Preguntame si alguno no queda claro. Con esto puedes aplicar las correcciones menores que ha sugerido la gente y enviar directamente la nota en .doxc a ecosistemas (type = nota ecoinformatica) para publicar en el siguiente número. Muchas gracias.
Gracias a ti, Nacho y a todos los revisores. Me pongo con ello.
Nacho, respecto al comentario de la línea 91, (" Quizas es mejor usar MARGIN=2, para evitar perder a gente con t()"), en este caso es necesario dejarlo así ya que hay que normalizar por filas y el resultado, lógicamente, es una matriz transpuesta. Se me ocurre añadir la siguiente aclaración:
"(Nota: la función t()
en el segundo paso la empleamos para devolver la matiz transpuesta resultante a su configuración original)"
Claro, dije lo de MARGIN de memoria. Aclararlo ayuda a la gente que nunca ha usado t(). Graicas!
Marcelino, has podido enviar la nota? Confirmame y cierro el issue. Gracias!
Hola Nacho: Sí, ya está enviada. Gracias a ti!
Antes de hacer una nota sobre la creacion de paquetes, mejor hacer una sobre creacion de funciones: explicar que es muy facil (encerrar codigo dentro de dos llaves y nombrar a la funcion, grosso modo), es muy util (repetibilidad en el codigo, mucho menos error/bug prone), explicacion de exqueletos de roxygen. Da ventaja a la nota sobre paquetes porque explicaria lo basico de repetibilidad + hacer funciones (el 99% de hacer un paquete) ylos archivos de ayuda, y dejaria la nota de paquetes centrarse en la estructura de archivos y carpetas (lo complicado) que se requieren para hacer el paquete. Ademas, es un paso natural... de escribir codigo, se pasa a hacer funciones, y despues a hacer paquetes .
Yo podria hacerlo/coordinarlo una vez finalizado el de los graficos. Tengo ejemplos aptos para ecologos: 1) empaquetar una linea de codigo en una funcion (para normalizar una variable, y de paso, comparar con la de R base, no se si sabeis, pero hay muchsima gente que no conce la funcion scale de R y crea su funcion propia o sus lineas de codigo en sus scripts) 2) añadir automaticamente a un histograma una barra en la que se muestra el numero de NA's de los datos. Aqui se introduciria el esqueleto de ayuda de roxygen. Ademas, ejemplo de personalizacion de graficos. 3) Algo mas elaborado, para aplicar a data.frames. La que tengo de momento no podria publicarse, podria hacer una funcion para usar un algoritmo/funcion para estimar densidad de topillos que un colega desarrollo en su tesis en la tierra de campos.
Saludos Fer