Community deutschsprachiger SAS-Anwender und -Programmierer

Antworten
Dies ist eine offene Gruppe. Melden Sie sich an und klicken Sie auf die Schaltfläche „Gruppe beitreten“, um Mitglied zu werden und damit zu beginnen, Beiträge in dieser Gruppe zu veröffentlichen.
Highlighted
N/A
Beiträge: 0
Habe ich eventuell einen Proc Print Bug entdeckt? Obs übersprungen

Hallo Leute,

ich habe mir die SAS University Edition runtergeladen.

Dann habe ich ein paar Tutorials der University of California (UCLA) durchgearbeitet: Resources to help you learn and use SAS

Folgendes DataSet wird in den meistens Tutorial verwendet http://www.ats.ucla.edu/stat/data/hsb2.sas7bdat

Zum Problem. Folgendes Verhalten finde ich merkwürdig.

Ich mache

proc print data = mylib.hsb2;

run;

Im Output wird Obs Nummer 159 ausgelassen. Warum?

Viele Grüße

Thilo

N/A
Beiträge: 0
Re: Habe ich eventuell einen Proc Print Bug entdeckt? Obs übersprungen

Hallo Thilo,

es gibt keine Obs mit der Nummer 159!

Die wurde vermutlich rausgelöscht mit FSEDIT.

Nur beim Neuerstellen der Datei werden die Nummern wieder fortlaufend vergeben.

Also zum Glück kein Bug ...

Viele Grüße

Manfred

N/A
Beiträge: 0
Re: Habe ich eventuell einen Proc Print Bug entdeckt? Obs übersprungen

Ok, ich würde das gerne nachstellen. Ich habe die FSEDIT Prozedur noch nicht gefunden, mit einem Data-Step und DELETE konnte ich es nicht nachstellen.

Deshalb glaube ich dir einfach mal ;-)

Esteemed Advisor
Beiträge: 5.974
Re: Habe ich eventuell einen Proc Print Bug entdeckt? Obs übersprungen

Dem wage ich respektvoll zu widersprechen. PROC CONTENTS zeigt für die (direkt runtergeladene) Version des Datasets keine deleted observations an:

                 Data Set Name    COMMUN.HSB2                             Observations      200
                 Member Type      DATA                                    Variables         11
                 Engine           V9                                      Indexes          
                 Created          Samstag, 09. Januar 1960 05.10 Uhr      Observation Length88
                 Last Modified    Samstag, 09. Januar 1960 05.10 Uhr      Deleted Observations  0 
                 Protection                                                   Compressed        NO
                 Data Set Type                                                Sorted            NO
                 Label                                                                               
                 Data Representation  WINDOWS_32                                                     
                 Encoding         Default                                                        
---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
N/A
Beiträge: 0
Re: Habe ich eventuell einen Proc Print Bug entdeckt? Obs übersprungen

Hallo Kurt,

ich stimme Dir zu, da müsste Deleted Observations = 1 stehen.

(Was auch so ist, wenn man es nachzuvollziehen versucht!)

Aber die PROC CONTENTS-Angaben dieser Datei sind sowieso

nicht konsistent; beim Erstelldatum 09. Januar 1960 würde ich mal

annehmen, dass diese Information auch nicht richtig ist.

(Laut Wikipedia begann die SAS-Entwicklung erst 1966 ...)

Ich schätze einfach mal, diese Infos ist bei irgend einem Releasewechsel

oder bei einer Änderung des Dateiformates verloren gegangen oder verfälscht

wurden.

Oder diese Infos wurden versehentlich (oder sogar bewusst?) so erzeugt ...

Auf jeden Fall sind nicht die Daten selbst fehlerhaft, sondern nur die Angaben

in PROC CONTENTS.

Viele Grüße

Manfred

N/A
Beiträge: 0
Re: Habe ich eventuell einen Proc Print Bug entdeckt? Obs übersprungen

Ich habe ein Ticket bei der UCLA eingestellt. Vielleicht kommt ja was zurück.

Esteemed Advisor
Beiträge: 5.974
Re: Habe ich eventuell einen Proc Print Bug entdeckt? Obs übersprungen

Sieht nach einem Problem mit der Filestruktur aus. Ich habs auf meinen Server kopiert (AIX64, 9.2) und dort den selben Effekt erlebt. Nachdem ich dann mit einem simplen Data Step eine Kopie angefertigt habe, hat der Proc Print richtig ausgegeben.

Du verlierst aber keinen Satz, der erste Proc Print gibt als letzte Obs 201 an, obwohl nur 200 vorhanden sind! Der Print verzählt sich und springt von 158 auf 160.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
Esteemed Advisor
Beiträge: 5.974
Re: Habe ich eventuell einen Proc Print Bug entdeckt? Obs übersprungen

Nochwas: Proc Contents zeigt für die ursprüngliche Version des Files Data Representation=Windows_32 an, und wenn man obs in first data page und max obs per page addiert, erhält man (tataa) 159. Da passiert also was beim Sprung von der 2. zur 3. Page im File.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
N/A
Beiträge: 0
Re: Habe ich eventuell einen Proc Print Bug entdeckt? Obs übersprungen

Ok, bin selber auf mac unterwegs. Wenn man das File mit dem SAS-Universal-Viewer öffnet, sollte es diesen Sprung, von 158 zu 160 ebenfalls anzeigen, oder?

N/A
Beiträge: 0
Re: Habe ich eventuell einen Proc Print Bug entdeckt? Obs übersprungen

Ich habe eine Antwort von der UCLA erhalten:


Greetings,

No, I cannot reproduce this behavior in SAS.  If you think that the problem is caused by moving the dataset from one operating system to another, you might want to try using proc migrate.  If that does not help, I would suggest that you contact either SAS Technical Support or the SAS listserv (https://listserv.uga.edu/cgi-bin/wa?A0=SAS-L ).

I am sorry that we cannot be of further assistance to you.

Esteemed Advisor
Beiträge: 5.974
Re: Habe ich eventuell einen Proc Print Bug entdeckt? Obs übersprungen

Mehr und mehr glaub ich hier an ein Problem mit der internen Struktur des Files. Ich halte das nicht für einen Zufall, dass der "Verzähler" an einer Page-Grenze geschieht.

Welche SAS Version auf welcher Plattform benutzt Du?

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
N/A
Beiträge: 0
Re: Habe ich eventuell einen Proc Print Bug entdeckt? Obs übersprungen

Ich benutze die SAS University Edition auf Mac OS X.

Was meinst du mit interner Struktur des Files?

Esteemed Advisor
Beiträge: 5.974
Re: Habe ich eventuell einen Proc Print Bug entdeckt? Obs übersprungen

SAS organisiert ein .sas7bdat in Blöcken/Pages (4K, 8K, 16K,..., die Größe hängt von Bitness und Systemumgebung ab).

Je nach Satzgröße passen da eine bestimmte Anzahl Sätze in eine Page, ein gewisser Rest verbleibt in jeder Page.

Da in der ersten Page auch die gesamten Header-Informationen drin sind, hält sie natürlich weniger Sätze als die anderen. Das zeigt sich in den Angaben "obs in first data page" und "max obs per page" aus PROC CONTENTS.

Worauf ich eben hinauswollte, ist die Tatsache, dass in dem original auf Windows produzierten Dataset die beiden Zahlen den "Fehlerpunkt" ergeben, also das Überspringen einer Satznummer am Übergang von der 2. zur 3. Page passiert. Das sieht total verdächtig aus.

"Ich glaube nicht an Zufälle" (Leroy Jethro Gibbs)

Noch ein paar "Schmankerln":

Ich gehe davon aus, dass die Windows-Maschine, auf der das erzeugt wurde, kein Datum gesetzt hatte und einfach losgezählt hat, daher das merkwürdige Erstellungsdatum. Wenn nicht irgendein lustiger Student seine Fähigkeiten im Rumspielen mit binären Daten unter Beweis stellen wollte Smiley (zwinkernd)

Als "Release Created" wird 7.0000M0 angegeben. IIRC, war SAS 7 ein ziemlicher Exot und wurde recht schnell von SAS 8 abgelöst, falls es nicht überhaupt nur ein Entwicklungsrelease war; wir sind direkt von 6.12 auf 8 gegangen. Kann also sein, dass hier noch ein Bug der Version 7 mitgespielt hat (mit Version 7 kam der Sprung von den .sd1 bzw .ssd01 zu den .sas7bdat Files)

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
Esteemed Advisor
Beiträge: 5.974
Re: Habe ich eventuell einen Proc Print Bug entdeckt? Obs übersprungen

Die SAS UE läuft in der VM unter Linux und ist Version 9.4, da ist also kein technisches Problem zu vermuten.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
N/A
Beiträge: 0
Re: Habe ich eventuell einen Proc Print Bug entdeckt? Obs übersprungen

Alles klar Kurt. Nagut. Ich werde zuhause meine Win32 Büchse rausholen und da noch mal Proc Print machen. Offensichtlich sollte es damit nicht zu dem merkwürdigem Verhalten kommen. Die Support - Mitarbeiterin von der UCLA konnte es ja nicht reproduzieren.