biblioteca (tidyverse)
biblioteca (cadena)
## PASOS PARA UTILIZAR ESTAS FUNCIONES:
## 1. DEFINIR EL OBJETO ‘PATH_FILE’, QUE ES UNA RUTA AL DIRECTORIO DONDE
## TODOS LOS CONJUNTOS DE DATOS SE ALMACENAN.
## 2. APLICAR LA FUNCIÓN ‘get_names_labels’ CON LA RUTA. LA FUNCIÓN SERÁ
## DEVOLVER UN MARCO DE DATOS NOMBRES ‘nombres_etiquetas’.
## 3. LA FUNCIÓN DEVOLVERÁ UN CONJUNTO DE DATOS (‘names_labels) QUE MUESTRA LOS NOMBRES DE
## LAS VARIABLES, LAS ETIQUETAS Y EL CONJUNTO DE DATOS. EXPLORA VISUAL/MANUALMENTE EL
##CONJUNTO DE DATOS PARA SELECCIONAR LAS VARIABLES QUE NECESITAMOS. CREAR UN VECTOR CON LOS NOMBRES
## DE LAS VARIABLES QUE NECESITAMOS, Y NOMBRA ESTE VECTOR ‘variables_needed’.
## 4. DEL CONJUNTO DE DATOS ‘names_labels’, MANTENGA SÓLO LAS FILAS CON LAS VARIABLES NOSOTROS
## USARÁ (ALMACENADO EN EL VECTOR ‘variables_needed’).
## 5. APLICAR LA FUNCIÓN ‘read_and_select’ A CADA UNO DE LOS CONJUNTOS DE DATOS CON RELEVANTE
##VARIABLES. ESTA FUNCIÓN SOLO NECESITARÁ EL NOMBRE DEL CONJUNTO DE DATOS, QUE ES
## ALMACENADO EN LA ÚLTIMA COLUMNA DEL CONJUNTO DE DATOS ‘names_labels’.
### FUNCIÓN PARA 1) LEER TODOS LOS CONJUNTOS DE DATOS EN UNA CARPETA; 2) EXTRACTOS DE NOMBRES Y ETIQUETAS;
### 3) PONER NOMBRES Y ETIQUETAS EN UN CONJUNTO DE DATOS; Y 4) DEVOLVER EL CONJUNTO DE DATOS. EL ÚNICO
### LA ENTRADA NECESARIA ES UNA RUTA A UN DIRECTORIO DONDE SE ALMACENAN TODOS LOS CONJUNTOS DE DATOS.
get_names_labels <- función(ruta_archivo){
resultados_df <- lista()
archivos_sas <- c(
list.files(ruta = ruta_archivo, patrón = “\\.sas7bdat$”)
)
para (yo en 1: longitud (sas_files)) {
imprimir (archivos_sas[i])
# Leer el archivo SAS
sas_data <- read_sas(pegar0(ruta_archivo, sas_files[i]))
sas_data <- as.data.frame(sas_data)
# Obtener los nombres y etiquetas de las variables.
var_names <- nombres (sas_data)
etiquetas <- sas_data %>%
mapa(~atributos(.)$etiqueta) %>%
map_chr(~ifelse(es.null(.), NA, .))
# Combinar los nombres de las variables y las etiquetas en un marco de datos
var_df <- marco.datos(
nombre_variable = nombres_var,
etiqueta_variable = etiquetas,
nombre_archivo = archivos_sas[i],
cadenasAsFactors = FALSO
)
# Agregar los resultados al marco de datos general
resultados_df[[i]]<- var_df
}
resultados_df <- do.call(rbind, resultados_df)
#return(resultados_df)
asignar(‘nombres_etiquetas’, resultados_df, entorno = .GlobalEnv)
}
################################################## ##############################
### FUNCIÓN PARA LEER CADA CONJUNTO DE DATOS Y MANTENER SÓLO LAS VARIABLES QUE SELECCIONAMOS; EL
### LA FUNCIÓN GUARDARÁ CADA CONJUNTO DE DATOS EN EL ENTORNO. EL ÚNICO APORTE ES EL
### NOMBRE DEL CONJUNTO DE DATOS.
read_and_select <- función (df_file) {
df_tmp <- read_sas(pegar0(ruta_archivo, df_archivo))
df_tmp <- df_tmp %>%
seleccionar (único (nombres_etiquetas)[which(names_labels$file_name == df_file), ]$nombre_variable)) %>%
como.marco.de.datos()
asignar(str_extract(df_file, “[^.]+”), df_tmp,envir = .GlobalEnv)
}
################################################## ##############################