web-dev-qa-db-fra.com

Dans SAS, que signifie l'option "dsd"?

J'ai une petite question.

J'apprends SAS et je suis tombé sur l'option dsd=.

Est-ce que quelqu'un sait ce que cela signifie? Cela pourrait aider à se souvenir/contextualiser.

Merci.

11
Matt O'Brien

Plutôt que de simplement copier et coller du texte depuis Internet. Je vais essayer de l'expliquer un peu plus clairement. Comme le délimiteur DLM=, DSD est une option que vous pouvez utiliser dans l'instruction infile

Supposons qu'un délimiteur a été spécifié avec DLM= et que nous avons utilisé DSD. Si SAS voit deux délimiteurs côte à côte ou avec uniquement des espaces vierges space (s) , il le reconnaîtra alors comme une valeur manquante. 

Par exemple, si le fichier texte dog.txt contient la ligne:

171,255,,dog 

Ensuite,

data test;
    infile 'C:\sasdata\dog.txt' DLM=',' DSD;
    input A B C D $;
run;

affichera:

                               A      B     C     D

                              171    255    .    dog

Par conséquent, la variable C sera manquante, indiquée par le .. Si nous n'avions pas utilisé DSD, cela renverrait des données invalides.

9
Yick Leung

DSD(données sensibles au délimiteur)

spécifie que lorsque les valeurs de données sont entre guillemets, les délimiteurs au sein de la valeur sont traités comme des données de type caractères. L'option DSD Modifie la manière dont SAS traite les délimiteurs lorsque vous utilisez l'entrée LIST et que Définit le délimiteur par défaut sur une virgule. Lorsque vous spécifiez DSD, SAS Traite deux délimiteurs consécutifs comme une valeur manquante et supprime les guillemets Des valeurs de caractère.

http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000146932.htm

7
Patrick Moore

DSD est synonyme de données sensibles au délimiteur.

La déclaration DSD (Delimiter-Sensitive Data) dans infile fait trois choses pour vous. 1: il ignore les délimiteurs dans les valeurs de données placées entre guillemets; 2: il ignore les guillemets dans vos données; 3: elle traite deux délimiteurs consécutifs comme une valeur manquante.

Source: easy sas

7
Sheldon

DSD fait référence à des fichiers de données délimités comportant des délimiteurs en cas de données manquantes. Auparavant, les programmes qui créaient des fichiers délimités mettaient toujours un blanc pour les données manquantes. Aujourd'hui, cependant, les logiciels informatiques ne sont pas mis en blanc, ce qui signifie que les délimiteurs ne sont pas séparés. L'option DSD de l'instruction INFILE indique à SAS de faire attention à cela. Vous trouverez ci-dessous des exemples (utilisant des valeurs délimitées par des virgules) pour illustrer:

Old Way:    5,4, ,2, ,1    ===> INFILE 'file' DLM=',' ... etc
New Way:    5,4,,2,,1     ===>  INFILE 'file' DLM=',' DSD ... etc.

Référer

référence

0
Nagaraj S