Trucos SAS. Particionar y exportar a texto un dataset

Duda que plantea David. Exporta a csv una tabla SAS en varias partes. Ya habrá tiempo para comentarlo: *TABLA SAS DE EJEMPLO; data total; do i=1 to 10000; importe=ranuni(8)*100; output; end; run; *MACRO QUE RECORRE LA TABLA, PARTE Y EXPORTA CADA PARTE NECESITA EL CONJUNTO DE DATOS Y EL TAMAÑO DE CADA PARTE; %macro parte(ds, tamanio); %do i = 1 %to 10000 %by &tamanio.; data parte; set &ds. (firstobs = &i. obs = %eval(&i. + &tamanio.)); run; PROC EXPORT DATA= WORK.Parte OUTFILE= "C:\\TEMP\\parte&i..csv" DBMS=CSV REPLACE; RUN; proc delete data=parte; quit; %end; %mend; %parte(total, 1000);

5 de junio de 2012 · rvaquerizo

Trucos SAS. Primer y último elemento de un array

Breve entrada sobre el uso de arrays en SAS. Dada una tabla SAS como esta con una variable mes1, mes2, … mesN: Necesitamos identificar el primer y el último elemento no nulo de un array y el número de elementos no nulos de ese array. Veamos el ejemplo: data datos; input id mes1 mes2 mes3 mes4 mes5 mes6; datalines; 1 . . . . . . 2 162.18 88.41 919.62 891.25 837.73 163.14 3 . 790.52 160.03 . 60.31 343.30 4 . . 482.45 755.39 . . 5 265.17 963.53 . . 392.06 . 6 . 214.95 616.17 183.01 778.48 57.42 7 191.52 . 208.50 50.55 705.72 . 8 711.76 . . . 193.20 658.45 9 782.67 172.49 539.42 663.28 4.53 358.51 10 695.12 367.74 . 573.47 366.30 951.98 ; run; Para este proceso creamos un array que recorreremos 2 veces, una hacia delante para identificar el primer elemento y otra a hacia atrás para identificar el último elemento: ...

21 de mayo de 2012 · rvaquerizo

Test de Levene con SAS

El Test de Levene se aplica para la igualdad de varianzas. Es un análisis de la varianza de las desviaciones de los valores muestrales respecto a una medida de tenedencia central. Parte de la hipótesis nula de igualdad de varianzas. Para realizar este test en SAS emplearemos el PROC GLM en combinación con la opción HOVtest. En la línea habitual vemos un ejemplo: data datos; input presion @@; if _n_<=5 then grupo=1; else if _n_<=10 then grupo=2; else if _n_<=15 then grupo=3; else if _n_<=20 then grupo=4; else grupo=5; cards; 180 172 163 158 147 173 158 170 146 152 175 167 158 160 143 182 160 162 171 155 181 175 170 155 160 ; run; Proc GLM Data=datos ; Class grupo; Model presion = grupo; Means grupo/HOVTest; ODS select HOVFTest; Quit; Vemos que se trata de un código sencillo donde modelizamos con GLM la variable dependiente con la variable grupo y en MEANS indicamos con HOVtest que deseamos que se realice el test de Levene, con ODS seleccionamos sólo esa salida. Este código podemos parametrizarlo y crear una macro que nos permita replicar el código: ...

7 de mayo de 2012 · rvaquerizo

Sentencia del Tribunal de Justicia de la UE sobre el caso WPS y SAS

El caso de WPS y SAS por fin tiene un final. World Programing Software ha vencido (por fin) al todo poderoso SAS Institute Inc. La sentencia establece que: De este modo, procede señalar que no puede haber infracción del derecho de autor sobre el programa de ordenador cuando, como sucede en el caso de autos, el adquirente legítimo de la licencia no ha tenido acceso al código fuente del programa de ordenador correspondiente a esa licencia, sino que se limitó a estudiar, observar y verificar ese programa con el fin de reproducir su funcionalidad en un segundo programa. ...

2 de mayo de 2012 · rvaquerizo

Trucos SAS. Errores y formatos

Un truco SAS que puede ayudar a todos aquellos que estén empezando a programar en SAS. Hay ocasiones que trabajamos con datasets que tienen formatos y nos encontramos con el error: « formato FMT no se ha encontrado o no se ha podido cargar». ¿Qué hacer? Lo primero es jugar con la opción FMTERR: options nofmterr; Esta opción de SAS nos permite trabajar con conjuntos de datos SAS con formatos aunque no estén cargados porque no se tienen en cuenta los errores. Por otro lado podemos emplear PROC DATASETS para eliminar todos los formatos (entrada y/o salida) de un conjunto de datos SAS, el código es el siguiente: ...

19 de abril de 2012 · rvaquerizo

Trucos SAS. Pasar fecha a caracter en SAS

Pasar números a carácter en SAS es un tema reiterativo tanto en entradas al blog como en búsquedas. Pero que se le puede dar otra vuelta de tuerca. Se trata de transformar fechas a variables alfanuméricas, pero en este caso vamos a poner las fechas en formato español. Ejecutad este ejemplo en SAS: data uno; y = '30jan11'd; c0 = put(y,ddmmyy10.); c1 = upcase(put(y,ESPDFDD.)); c2 = upcase(put(y,ESPDFDE.)); c3 = upcase(put(y,ESPDFDN.)); c4 = upcase(put(y,ESPDFDT.)); c5 = upcase(put(y,ESPDFDWN.)); c6 = upcase(put(y,ESPDFMN.)); c7 = upcase(put(y,ESPDFMY.)); c8 = upcase(put(y,ESPDFWDX.)); c9 = upcase(put(y,ESPDFWKX.)); run; Imagino que todos tenéis el NLS de SAS instalado y no tenéis problemas con estos formatos. Resumamos que nos ofrece cada una de estas transformaciones: ...

11 de abril de 2012 · rvaquerizo

En la regresión logística ¿el sobremuestreo es lo mismo que asignar pesos a las observaciones?

Hoy vamos a volver sobre el tema del sobremuestreo. Respondemos a un lector, Roberto, que hace mucho tiempo planteó una duda al respecto. La duda se puede resumir: En un modelo logístico, ¿equivale entrenar un modelo con las observaciones sobremuestreadas a entrenar el modelo poniendo un peso a cada observación? Esta cuestión nunca me la había planteado. Siempre había realizado un sobremuestreo de las observaciones adecuando la población de casos negativos a la población de casos positivos. Si estás habituado a trabajar con Enterprise Miner de SAS es habitual asignar pesos a las observaciones para realizar el proceso de sobremuestreo. ¿Obtendremos distintos resultados? ...

26 de marzo de 2012 · rvaquerizo

Trucos SAS. Eliminación de espacios en blanco

Truco SAS práctico para aquellos que os estáis iniciando en el uso de las funciones de texto con SAS. Se trata de eliminar aquellos espacios en blanco que no son necesarios en una variable. Quería plantearos las posibles soluciones que se me han ido ocurriendo. Algunas de ellas no son eficientes pero es necesario que dispongáis de todas. En la línea habitual planteo un ejemplo para que lo ejecutéis y así podáis analizar los resultados: ...

10 de enero de 2012 · rvaquerizo

Truco Excel y SAS. Ejecutar SAS desde macro en Excel

Un truco muy malo hoy. Se trata de crear una macro de Excel que llame a un programa SAS y que además podamos pasar un parámetro. Es un código en Visual Basic que no tiene complejidad pero que puede ser útil. El código es: Sub ejecuta_SAS() ' 'Ponemos la ubicación del ejecutable de SAS ubicacion_SAS = "C:\SAS\sas.exe" ' 'Programa que deseamos ejecutar de SAS programa_SAS = "'C:\ejecucion_excel.sas'" ' 'Podemos pasar parámetros como macros por ejemplo que aparecen en una celda de Excel 'Podemos poner todo el código SAS que queramos parametro = "'%let nobs = " & Cells(1, 1) & " ;'" ' 'En una cadena ponemos toda la ejecución ejecucion = ubicacion_SAS & " " & programa_SAS & " -initstmt " & parametro ' 'Shell ejecuta la cadena anterior ejecuta = Shell(ejecucion, 1) ' End Sub Poca cosa y poco talento y bastante claro. Pero si me gustaría destacar el uso de la opción de SAS -initstmt que nos permite ejecutar SAS poniendo un código previamente (init statement). Esta opción nos permite pasar una macro como parámetro que es leída en una celda de Excel. Es una opción habitual cuando hacemos archivos ejecutables para SAS. Espero que sea de utilidad. Saludos.

12 de diciembre de 2011 · rvaquerizo

Trucos Excel (y SAS). Complemento para cambiar la configuración regional

Pasar salidas de SAS a Excel trae de cabeza a muchos usuarios de SAS. A este blog llegan un gran número de entradas desde Google con términos del tipo importar datos de sas a Excel, conectar SAS a excel, cambiar la configuración regional con macros,… Hoy quería ayudaros un poco con esta problemática. Bueno, en realidad os va a ayudar el compañero Salva que hace unos meses me pasó un complemento de Excel tremendamente útil para aquellos que movemos datos entre SAS y Excel. Para trabajar con este complemento sólo tenéis que descargarlo en este enlace y activar el complemento en Opciones de Excel Administrar complementos. Una vez hayamos hecho esto tendremos en nuestra pestaña complementos lo siguiente: ...

25 de noviembre de 2011 · rvaquerizo