Estoy leyendo información del INE que tiene que terminar cargándose en SAS y estos datos están en formato PC Axis. Existen macros en SAS para generar datasets a partir de PC Axis, pero la verdad es que no he llegado a entender muy bien cómo funcionan y, tras varios errores, la mejor opción que he encontrado es emplear R y el paquete pxR que han creado algunos miembros de la Comunidad de R-Hispano. Cómo realizo esta tarea es más que sencillo:
En R realizamos la importación del archivo .px:
library(pxR)
nacionalidad <- read.px("ubicacion\\seccion_censal_nacionalidad.px")
nacionalidad_df <- as.data.frame(nacionalidad)
write.csv(nacionalidad_df, file = "ubicacion\\nacionalidad.csv", row.names = FALSE)
Hemos generado un .csv que importamos desde SAS:
proc import datafile="ubicacion\nacionalidad.csv"
out=nacionalidades
dbms=csv
replace;
getnames=yes;
run;
También quería aprovechar esta entrada para comentaros que es preferible usar los viejos .csv para mover archivos entre R y SAS que usar librerías como SASxport que generan ficheros “portables” de SAS; aunque los ficheros “portables” garantizan que se puedan leer con distintas versiones de SAS, este paquete tarda mucho (demasiado) tiempo en crear los archivos. Y si alguien tiene una versión más sencilla de la macro de SAS, que mande el link. Saludos.