Ce face o ampersandă („&”) într-o declarație de tip „put”? (Programare, Sas)

user667489 a intrebat.

Sunt familiarizat cu :, și ~ în SAS put și input declarații. Comportamentul lui & într-un input este, de asemenea, destul de bine documentat. Dar ce face & în cadrul unui put declarație?

Se pare că are un efect similar cu :, declanșând mai degrabă o ieșire de listă modificată decât o ieșire formatată, dar nu găsesc nicio documentație cu privire la acest comportament.

De ex.

data _null_;
  set sashelp.class;
  file 'c:tempoutput.csv' dlm=',';
  put Name Sex Age & 4. Height Weight;
run; 

Comentarii

  • Nu văd nicio dovadă de documentare a acestui comportament. Bănuiala mea este că fie nu face nimic altceva decât două puncte (și este acolo doar pentru că două puncte funcționează atât pentru intrare, cât și pentru punerea), fie că are un efect ezoteric legat de efectul său de intrare (deși nu am putut vedea niciunul într-un scurt test). Dacă nimeni de aici nu-și dă seama, ați putea încerca să trimiteți un mesaj încrucișat la SAS-L sau communities.sas.com, acolo sunt mai mulți grognards care își amintesc cum funcționa în versiunile mai vechi ale SAS, unde ar fi putut face o diferență. (De asemenea, ar putea exista și pentru compatibilitate cu IBM Mainframe sau așa ceva.) -.  > Por Joe.
  • Sugestii bune. S-ar putea să întreb chiar SAS dacă au documentație pentru acest lucru. –  > Por utilizator667489.
1 răspunsuri
Beate Danielsen

Citez din documentația on-line în secțiunea din SAS 9.4 la rubrica INPUT Statement, List

&

indică faptul că o valoare de caracter poate avea unul sau mai multe spații goale unice încorporate. Acest modificator de format citește valoarea din următoarea coloană fără spații libere până când pointerul ajunge la două spații libere consecutive, la lungimea definită a variabilei sau la sfârșitul liniei de intrare, în funcție de ce se întâmplă mai întâi.

Restricție: Modificatorul & trebuie să urmeze numele variabilei și semnul $ pe care îl afectează.

Sfat: Dacă specificați un informat după modificatorul &, condiția de terminare a modificatorului de format rămâne două spații libere.

Iată un exemplu din secțiunea de exemple:

Exemplu Citirea datelor cu caractere care conțin spații goale încorporate

Instrucțiunea INPUT din această etapă DATA utilizează modificatorul de format & cu intrarea în listă pentru a citi valorile caracterelor care conțin spații libere încorporate.

data list;
   infile file-specification;
   input name $ & score;
run;

Aceasta poate citi aceste înregistrări de date de intrare:

----+----1----+----2----+----3----+
Joseph   11 Joergensen  red
Mitchel  13 Mc Allister  blue
Su Ellen  14 Fischer-Simon  green

Modificatorul & urmează după variabila pe care o afectează în instrucțiunea INPUT. Deoarece acest modificator de format urmează după NAME, cel puțin două spații libere trebuie să separe câmpul NAME de câmpul SCORE în înregistrările de date de intrare.

Puteți, de asemenea, să specificați un informat cu un modificator de format, după cum se arată aici:

input name $ & +3 lastname & $15. team $;

În plus, această instrucțiune INPUT citește aceleași date pentru a demonstra că nu este necesar să citiți toate valorile dintr-o înregistrare de intrare. Controlul pointerului de coloană +3 mută pointerul dincolo de valoarea scorului pentru a citi valoarea pentru LASTNAME și TEAM.

Comentarii

  • Acest lucru nu răspunde la întrebare – mă interesează valoarea put și nu de instrucțiunea input declarație. –  > Por user667489.

Tags: