Open jllipatz opened 6 years ago
Sur la partie tabulation, il semble y avoir une piste avec 'expss'. Ci joint un embryon de code, partant du fichier final recodé, mais le code reste à compléter pour arriver au résultat souhaité. `library(haven) library(lubridate) library(expss)
a <- read_sas("U:/PALETTES/PP/final.sas7bdat")
a <- mutate(a,codhie2=ifelse(corps=="1134","En",codhie)) a$categorie <- factor(a$codhie2,c("A+","A","B","C","En")) a$age <- 2017 - year(aleatoire$datnai)
a <- apply_labels(a, age="", sexemp="", affadmin="", sexemp = num_lab(" 1 Homme 2 Femme ") )
a %>% tab_cells(age) %>% tab_cols(total(),categorie %nest% sexemp) %>% tab_rows(total(),affectation %nest% affectation2 ) %>% tab_stat_fun(Age = w_median, N = w_n,method=list) %>% tab_pivot() %>% drop_empty_rows() %>% htmlTable(caption = "Age median.")`
Bonjour,
Voici une version avec la fonction tabular. Je n'ai pas trouvé comment sélectionner les croisements que l'on souhaite afficher comme on peut le faire via l'option CLASSDATA de SAS. Dans cette version, s'affiche seulement les lignes avec individus (il suffit d'enlever l'option DropEmpty() pour voir tous les croisements).
library("xlsx", "dplyr", "tables")
library("lubridate")
library("magrittr")
annee <- 2017
final <- xlsx::read.xlsx("F:/Exemples R/proc tabulate/aleatoire 2.xlsx",1, stringsAsFactors = FALSE)
final$identi <- final$timbreadmin
final$affectation2 <- as.factor(dplyr::case_when(
final$identi == "R971-972" ~ "Direction régionale de Antilles-Guyane Martinique",
final$identi=='R971-971' ~"Direction régionale de Antilles-Guyane Guadeloupe",
final$identi=='R971-973' ~ "Direction régionale de Antilles-Guyane Guyane",
substr(final$identi,1,3)=='R35' ~"Direction régionale de Bretagne",
TRUE ~ "NA"))
final$affectation <- as.factor(dplyr::case_when(
substr(final$identi,1,4) == "R971" ~ "Direction régionale de Antilles-Guyane",
substr(final$identi,1,3)=='R35' ~"Direction régionale de Bretagne",
TRUE ~ ""))
final$codhie2 <- dplyr::case_when(
final$corps=="1134" ~ 'En',
TRUE ~ final$codhie
)
final$sexe <- as.factor( dplyr::case_when(
final$sexemp =="1"~"Homme",
final$sexemp =="2" ~ "Femme"
))
final$age <- annee - lubridate::year(final$datnai)
final$mois <- 12 - lubridate::month(final$datnai)
final$jour <- 31 - lubridate::day(final$datnai)
final$agearrondi <- round(final$age + (final$mois + final$age / 31) / 12, digits = 2)
tables::tabular( affectation * (affectation2+1) * (as.factor(codhie2)+1)*sexe * DropEmpty() ~ 1 + agearrondi*median, data = final)
Bonjour, voici un autre exemple d'utilisation de la Proc tabulate avec plusieurs paramètres et options utilisés. Il y a aussi un jeu de données anonymisées et des formats SAS également exemple_tabulate.zip utilisés
Exemple de recodage et tabulation.