Description Usage Arguments Details Value See Also Examples
Convertit les données contenues dans les proc format
d'un programme SAS en
une liste de vecteurs qui pourra servir à effectuer des conversions.
1 |
sas_pgm |
un programme SAS sous la forme d'un vecteur de chaînes de caractères. |
quote |
type de guillemet. SAS autorise deux types de guillemets pour
décrire une chaîne de caractères. La fonction suppose que des guillemets
doubles sont utilisés ("). Dans le cas contraire ('), spécifier
|
source |
conserver le code SAS dans un attribut |
La fonction ne recherche que les formats de type caractère (value $nom
).
Les formats numériques sont ignorés (un message d'avertissement dresse une
liste de ces formats, s'ils sont présents).
Le programme peut se présenter sous la forme d'une chaîne unique de
caractères mais aussi d'un vecteur de plusieurs chaînes (typiquement le
résultat de la lecture d'un fichier par readLines). Les commentaires,
espaces et sauts de lignes surnuméraires sont autorisés. La casse du code SAS
(majuscule ou minuscule) est sans importance. Le programme peut en outre
contenir autre chose que des proc format
.
La fonction détecte plusieurs valeurs séparées par des virgules à gauche du
signe =
. En revanche, les intervalles de caractères (type "A"-"Z"
) ne
sont pas gérés car ils contiennent un nombre indéfini de modalités possibles.
Les bornes de l'intervalle seront toutefois prises en compte (comme si
"A","Z"
était écrit). La syntaxe sans les guillemets (A-Z
), également
permise par SAS, n'est pas prise en compte et ces intervalles seront
ignorés.
Il est possible de choisir le type de guillemets (double ou simple) entourant les valeurs. Avec un programme contenant un mélange de guillemets simples et doubles, la fonction ne détectera qu'un type et pas l'autre.
La modalité SAS other
(valeur par défaut) est sauvegardée dans l'attribut
"other" pour chaque élément de la liste. Si le format SAS n'a pas de valeur
par défaut, l'attribut n'est pas présent.
Une liste contenant autant d'éléments que de formats si les données
avaient été générées par SAS via une proc format
.
les noms de la liste correspondent aux noms des formats (value $...
) ;
les éléments de la liste sont des vecteurs contenant les relations entre valeurs initiales et valeurs converties ;
chaque élément a un éventuel attribut "other"
;
chaque élément est un objet de type fmtsas_c
, ce qui permet
d'utiliser l'opérateur de sélection avec prise en
compte d'une valeur par défaut (other
).
Voir les exemples pour l'utilisation de cette liste.
from_tab pour importer les formats contenus dans une table SAS.
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 | ## Import d'un programme SAS :
test_pgm <- readLines(
system.file("extdata/pgm_format_test.sas", package = "fmtsas"),
encoding = "UTF-8"
)
cat(test_pgm, sep = "\n")
## Conversion des formats :
conv <- from_pgm(test_pgm)
conv
## Utilisation :
# soit un jeu de donnees contenant des codes a convertir en libelles
donnees <-
data.frame(
ACT_CODE = c( "B", NA, "C", "P", "W", "F"),
REG_CODE = c("94", "04", "44", "09", "01", NA)
)
# pour remplacer les codes par les libelles (pour ACT_CODE)
donnees$ACT_LIB <- conv$a13_[donnees$ACT_CODE]
donnees$ACT_LIB2 <- conv$a13_[donnees$ACT_CODE, keep_na = TRUE]
donnees$REG_LIB <- conv$reg[donnees$REG_CODE]
donnees
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.