Truco SAS. Cruce con PROC FORMAT

Veremos un ejemplo de ahorro de tiempo haciendo un cruce con formatos. Parece curioso que los formatos ahorren tiempo frente al SORT/MERGE y SQL, ya que básicamente no están hechos para esa finalidad, pero realmente podemos ahorrarnos más del 50% del tiempo. Lo más costoso de este método es la carga del formato, pero una vez que lo tenemos cargado, podemos hacer las selecciones de todos los grandes volúmenes de datos que necesitemos. Con el SORT/MERGE, tendríamos que ordenar el conjunto de datos SAS “grande” cada vez si no lo teníamos ya ordenado. Este método es realmente efectivo al cruzar tablas grandes frente a pequeñas. ...

4 de marzo de 2008 · svalle

Truco SAS: Dataset con los ficheros y carpetas de un directorio.

En ocasiones necesitamos listar los archivos de un directorio. En SAS se puede hacer así. Creamos una tabla en WORK con los nombres de los archivos y subcarpetas de un directorio: /* PONE ARCHIVOS DE UN DIRECTORIO EN TABLA SAS */ %macro archivos(directorio); data archivos; rc = filename('dir', "&directorio."); dirid = dopen('dir'); numarchivos = dnum(dirid); do i = 1 to numarchivos; nombrearchivos = dread(dirid, i); output; end; rc = dclose(dirid); drop rc i; run; %mend archivos; /* EJEMPLO SI QUEREMOS QUE NOS LISTE LAS TABLAS SAS DEL WORK */ proc sql noprint; select path into :ub_work from sashelp.vlibnam where libname = "WORK"; quit; %archivos(&ub_work.); data archivos_sas; set archivos; where index(lowcase(nombrearchivos), "sas7bdat") > 1; run; Puede sernos de gran utilidad cuando deseemos importar un gran número de ficheros de texto o si necesitamos manejarnos con archivos y shell; empleamos las funciones de “archivo” de SAS (en breve pondré un artículo sobre las funciones SAS). El programa se puede sofisticar empleando extensiones, eliminando carpetas… Espero vuestros comentarios y mejoras sobre el uso de esta macro. ...

3 de marzo de 2008 · rvaquerizo

Manual. Curso introducción de R. Capítulo 4: Contribuciones a R (paquetes)

En esta nueva entrega del manual introductorio a la programación en R comenzaremos a familiarizarnos con las contribuciones que se realizan en el mundo a esta herramienta. La intención es cargar un paquete que contenga una funcionalidad en R que nos permita leer orígenes de datos ODBC para que, en sucesivas entregas, podamos leer datos de Access, Excel… Los paquetes de R son contribuciones de programadores de todo el mundo para la creación de funcionalidades de R que contienen funciones que permiten que día a día R mejore y adquiera un mayor potencial. Estos paquetes se encuentran en el Comprehensive R Archive Network (CRAN), que es una red de FTP y servidores donde nos podemos descargar R o las contribuciones de los programadores de R de todo el mundo. En este caso, para España, tenemos la red CRAN espejo España. En ella tenemos todos los paquetes disponibles por orden alfabético. ...

28 de febrero de 2008 · rvaquerizo

Manual. Curso introducción de R. Capítulo 3: Lectura básica de datos

In el anterior capítulo creábamos vectores y matrices con las funciones c() y matrix(), pero in R disponemos de otros medios para leer o introducir datos. Empezamos con la entrada manual de datos: # Entrada manual de datos ej.3.1 <- scan() 1: 1 2 3: 4 5 5: 6 7 7: Read 6 items ej.3.1 [1] 1 2 4 5 6 7 Para introducir manualmente datos in R, disponemos de la función scan() e introduciremos los datos manualmente separando las entradas con un espacio; para finalizar, empleamos Intro en una línea sin datos. R nos indicará los registros leídos. La función scan() también puede leer ficheros de texto planos si le pasamos el fichero como parámetro: ...

27 de febrero de 2008 · rvaquerizo

Manual. Curso introducción de R. Capítulo 2: Interfaz y primeras sentencias

En esta nueva entrega del curso comenzamos a trabajar con R. Ya nos hemos descargado e instalado la herramienta y es momento de conocer a grandes rasgos cómo funciona R. Si abrimos una sesión, nos encontramos con la siguiente pantalla: El interfaz de R no es visual: trabajamos sobre una línea de comandos; no hay ventanas, sólo código y una gran comunidad de programadores que crean sus funciones y sus paquetes de utilidades. Para empezar a manejar R, lo principal es conocer sus elementos principales: objetos y funciones. ...

26 de febrero de 2008 · rvaquerizo

Manual. Curso introducción de R. Capítulo 1: ¿Qué es R?

Si queréis conocer qué es R, debéis visitar http://www.r-project.org/, la web que recoge uno de los proyectos GNU más interesantes que hay en el mundo. In ella podréis entender cómo nace una de las más potentes herramientas informáticas para la estadística. Con ella podremos realizar multitud de modelos multivariables, análisis y gráficos, y su código es libre. Además, disponemos de una extensa comunidad de programadores y colaboradores siempre dispuestos a compartir sus conocimientos con nosotros. ...

25 de febrero de 2008 · rvaquerizo

Manual. Curso de introducción a R (S-Plus)

En las próximas fechas iré colgando un manual introductorio de R. Con él quiero dar a conocer una potente y excepcional herramienta para la estadística cuya difusión es libre. En este pequeño curso o manual de R, iré contando desde la instalación hasta la familiarización con el entorno de la herramienta; también realizaré ejemplos de regresión lineal, análisis de agrupamiento, muestreo y remuestreo, técnicas de análisis de la varianza… En función del interés que despierten los distintos mensajes que exponga, variaré el contenido. ...

20 de febrero de 2008 · rvaquerizo

Nace Análisis y Decisión (AyD)

Nace un nuevo proyecto en la web. Profesionales con amplia experiencia en la gestión de la información se unen para compartir conocimientos. Aprender y transmitir lo aprendido: ése es el objetivo de Análisis y Decisión. Saludos.

19 de febrero de 2008 · rvaquerizo

You are a markdown file processor for a Hugo blog. Your task is to clean and standardize a markdown blog post while preserving its content and meaning. YAML header The post contains a YAML header. Keep it untouched. Body Content Processing General Rules Convert inline HTML to markdown where possible, remove if unnecessary (e.g., &nbsp; → space or remove) Preserve the text, do not rewrite or summarize, just reformat. But fix obvious spelling errors if found. Code Handling Identify code blocks and wrap them in proper fenced code blocks with language identifiers For SAS code use: ```sas For R code use: ```r For other code, use the appropriate language identifier Apply code formatting to the code if needed, but do not rewrite it. Inline code Mark inline code elements with backticks (variable names, commands, short code snippets). Mind that in some cases, the inlined code has marks such as italics, etc. Remove them if present and replace them with backticks. Mark inline email addresses as code: email@example.com Never add backtikcs for words or groups of words that are not code. Images Use proper markdown image syntax: ![alt text](url) Remove image links that wrap images: [![...]()](link) → ![...]() Keep title attributes if present and properly formatted: ![alt](url "title") Do NOT validate URLs or check if images exist Links Ensure proper markdown link syntax: [text](url) Do NOT validate URLs or check if links work Keep links as-is, just ensure proper formatting Mathematical Formulas Identify formulas in the text and convert them to LaTeX notation. Mark inline math with a single dollar sign: $formula$ Mark display math with double dollar signs: $$formula$$ Important Notes If you’re uncertain about code language identification, use generic blocks Preserve original content other than fixing obvious typing errors in the original Do not add, remove, or reword content Focus on formatting fixes, not content improvements

rvaquerizo

You are a markdown file processor for a Hugo blog. Your task is to clean and standardize a markdown blog post while preserving its content and meaning. YAML header The post contains a YAML header. Keep it untouched. Do not change it in any case! Body Content Processing General Rules Convert inline HTML to markdown where possible, remove if unnecessary (e.g., &nbsp; → space or remove) Preserve the text, do not rewrite or summarize, just reformat. But fix obvious spelling errors if found. Code Handling Identify code blocks and wrap them in proper fenced code blocks with language identifiers For SAS code use: ```sas For R code use: ```r For other code, use the appropriate language identifier Apply code formatting to the code if needed, but do not rewrite it. Apply the right format (indentation, etc.) to fenced code. Inline code Mark inline code elements with backticks (variable names, commands, short code snippets). Mind that in some cases, the inlined code has marks such as italics, etc. Remove them if present and replace them with backticks. Mark inline email addresses as code: email@example.com Never add backticks for words or groups of words that are not code. Do not add backticks to code in fenced blocks! Images Use proper markdown image syntax: ![alt text](url) Remove image links that wrap images: [![...]()](link) → ![...]() Keep title attributes if present and properly formatted: ![alt](url "title") Do NOT validate URLs or check if images exist Links Ensure proper markdown link syntax: [text](url) Do NOT validate URLs or check if links work Keep links as-is, just ensure proper formatting Mathematical Formulas Identify formulas in the text and convert them to LaTeX notation. Mark inline math with a single dollar sign: $formula$ Mark display math with double dollar signs: $$formula$$ Important Notes If you’re uncertain about code language identification, use generic blocks Preserve original content other than fixing obvious typing errors in the original Do not add, remove, or reword content Focus on formatting fixes, not content improvements

rvaquerizo