from_tab: Convertit une table pour format SAS

Description Usage Arguments Details Value See Also Examples

View source: R/from_tab.R

Description

Convertit les données utilisées pour une proc format (option CNTLIN=) en une liste de vecteurs qui pourra servir à effectuer des conversions.

Usage

1
from_tab(sas_data)

Arguments

sas_data

un data.frame importé depuis une table SAS pour proc format. Ce data.frame doit contenir a minima les colonnes FMTNAME, START, LABEL et TYPE (majuscule ou minuscule).

Details

La table en entrée est un data.frame, à importer dans R à partir d'une table SAS (par exemple avec le package haven).

Cette fonction ne gère pour l'instant que des formats caractère. De plus, s'il y a une colonne END dans la table en entrée, elle doit être égale à la colonne START.

La modalité SAS other (valeur par défaut), présente dans la table si une colonne HLO existe et vaut "O", est sauvegardée dans l'attribut "other" pour les éléments de la liste concernés.

Value

Une liste contenant autant d'éléments que de formats si les données avaient été générées par une proc format.

Voir les exemples pour l'utilisation de cette liste.

See Also

from_pgm pour importer les formats contenus dans un programme SAS.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
## Donnees en entree (provenant d'une table SAS) :

format_data <-
  data.frame(
    FMTNAME = c( "fmt1_", "fmt1_", "fmt1_", "fmt1_",  "sexe",  "sexe"),
    TYPE    = c(     "C",     "C",     "C",     "C",     "C",     "C"),
    START   = c(     "A",     "B",     "C",      NA,     "1",     "2"),
    LABEL   = c(     "A",    "BC",    "BC", "ERROR", "Homme", "Femme"),
    HLO     = c(      NA,      NA,      NA,     "O",      NA,      NA)
  )

## Conversion des formats :

conv <- from_tab(format_data)
conv

## Utilisation :

# soit un jeu de donnees contenant des codes a convertir en libelles
donnees <-
  data.frame(
    VAR1_CODE = c("A", "B", "A", "C", "Z",  NA),
    SEXE_CODE = c("1", "2", "1", "2",  NA, "Z")
  )

# pour remplacer les codes par les libelles (pour VAR1)
donnees$VAR1_LIB  <- conv$fmt1_[donnees$VAR1_CODE]
donnees$VAR1_LIB2 <- conv$fmt1_[donnees$VAR1_CODE, keep_na = TRUE]
donnees$SEXE_LIB  <- conv$sexe[donnees$SEXE_CODE]

donnees

InseeFrLab/fmtsas documentation built on Dec. 17, 2021, 11:30 p.m.