Anzeige Statistikdatensatz

Anzeige, Auswertung und Änderung ausgewählter Sätze einer Datei dstbest.txt oder dstbew.txt
(Alternativ kann man die csv-Ausgabedatei (falls diese nicht zu groß ist) mit Excel auswerten)

Steuerparameter

Satznummern

Zuerst wählt man, welche Satznummern ausgewählt werden sollen.

Beispiele fur eine Datei mit 4711 Sätzen:

SatznummernauswahlBedeutung
1-50 Die ersten 50 Sätze
1-* alle Sätze
1-10;1001-1010;2001-2010;4001-4010 4 Stichproben mit je 10 Sätzen
1-5000 Alle Sätze
4001-* Die letzten 11 Sätze

Satzinhalt

Mit der Satzinhaltsauswahl kann man die uber Satznummern ausgewählten Sätze nach inhaltlichen Kriterien weiter reduzieren, und zusätzliche Werte berechnen; z.B.:

SatzinhaltsauswahlBedeutung
RN1 < 20 RN1 kleiner als 20 (fuhrende Nullen unerheblich)
RN1 eq '0031' RN1 gleich 0031 (fuhrende Nullen wichtig)
substr(R02,3,2) eq '78' An Position 4 und 5 des Felds R02 muss '78' stehen (substr(name, pos, anz) zählt Postion pos ab 0 und gibt dann Anzahl Zeichen an)
(RN1 < 10) and ($n < 100) RN1 kleiner als 10 aber höchstens 100 Ausgabesätze
FIL210 = (B03==2 and B05==4);
1
Ändere Feld FIL201 in Kennung für Staatsangehörigkeitswechsel und gib alle Sätze aus. (mehrere Anweisungen werden durch ";" getrennt, die letzte Anweisung dient zur Auswahl der Sätzte; 1 bedeutet "Auswahl ist immer wahr".)
RN1 -= 10;
RN1 > 0
Verringere Feld RN1 um 10 und gib Satz aus, falls RN1 größer Null ist.
RN1 = sprintf '%04d', RN1 - 10;
RN1 > 0
Verringere Feld RN1 spaltengerecht für dst-Ausgabe um 10 und gib Satz aus, falls RN1 größer Null ist.
NEUB = ' ';
1
Lösche alle Felder NEUB

Diese Ausdrucke können dann zu komplizierten Ausdrucken kombiniert werden, z.B. Kennung für Lebendgeburt:

B03==1 and B04==1 and B07==1

oder noch ein wenig umfangreicher:

Erzeuge neue Ausgabevariable HUGO

BEGIN {
  # Dieser Abschnitt wird einmal am Anfang ausgefuhrt
  print {$HTM}
    '<h3>Vorbereitungen fur Ausgabe Bestand</h3>',
    "<p>Einrichtung Zusatzspalte HUGO (Feldlänge 4, Verschlüsselungsart I)</p>";
  push @{$sb}, [0,4,'HUGO','I']; # ergänze Satzbeschreibung
};

# Dieser Abschnitt wird fur jeden Satz ausgefuhrt:
HUGO = RN1 - 1;         # besetzte Feld HUGO
1;                      # wähle jeden Satz aus
In eine dst-Datei muss die Ausgabe spaltengerecht erfolgen:
HUGO = sprintf '%04d', RN1-1; # 4-stellig mit führenden Nullen
1;                            # wähle jeden Satz aus

Ausgabeoptionen

Überprüfung Ergebnisse hhprog-Quotenberechnung

Beispiele fur die Überprufung der Ergebnisse von HHPROG:

Wird SPw,15 aus Spezifikation B1.1 richtig berechnet ?

Satznummern1-*
SatzinhaltP02==2 and A01==15
keine Ausgabe Sätze

Wird PDO aus Spezifikation B1.0 richtig berechnet ?

Starten Quotenberechnung mit "Ausgabe Mikro-Merkmale = 2 oder 3"
Starten Bestandsanzeige:
Satznummern1-100 (oder beliebig andere Stichprobe)
Satzinhalt (leer)
Ausgabe Sätze in Tabelle oder csv-Datei
Manuelle Überprufung der Spalte PDO fur Stichprobe

Wird SPKm,12 aus Spezifikation B1.1 richtig berechnet ?

Satznummern1-*
SatzinhaltPDO==1 and P02==1 and A01==12
keine Ausgabe Sätze in Tabelle oder csv-Datei
Vergleiche Statistik im Protokoll Bestandsanzeige mit Protokoll Quotenberechnung.

Ableitung Makrodaten

zur Überprüfung
Eingabedaten/Berechnen/Makrodaten aus Statistikdatensatz Bestand+Bewegung
und zur Spezifikation neuer Makrodateien.

Für alle Ableitungen von Makrodaten gilt

Satznummern1-*
Keine Ausgabe Sätze in Tabelle und csv-Datei und keine Histogramme
Der Satzinhalt steuert die Ableitung der Makrodaten.
Die letzte Zeile
# Ausgabe
kann leer bleiben (entspricht default END{pdump($HTM,$bb);};, oder wird ersetzt durch
    # Ausgabe im Protokoll im csv-Format
    END{phtml($HTM,$bb);};

    # Ausgabe in Datei name_2015.csv mit Spaltenüberschriften
    END{pcsv($HTM,$bb,'name_2015.csv','#Gebiet;Geschlecht;Alter;Anzahl');};

Statistikdatensatz Bestand

# Alterspyramide
$bb->{P02}{A01}++;
# Ausgabe

# bestand mit
# substr(R02,0,2) wählt 2 signifikante Stellen von R02 aus
# bevgrp(P05)     wählt erste Staatsangehörigkeit 0: deutsch, sonst: nicht deutsch
# altgrp(A01[,100,'%02d']) wählt Altersgruppe 00, 01, ..., 98, 99 und mehr
$bb->{substr(R02,0,2)}{bevgrp(P05)}{P02}{altgrp(A01)}++ if W01==1;
# Ausgabe

# dsg auf Basis ANSTI (alternativ ANSTE)
$bb->{substr(R02,0,2)}{bevgrp(P05)}{P02}{altgrp(A01)}++ if ANSTI != 1;
# Ausgabe

Statistikdatensatz Bewegung

# geburt
$bb->{substr(R02,0,2)}{bevgrp(G02)}{G01}++ if B03==1 and B04==1 and B07==1;
# Ausgabe

# baby
$bb->{substr(R02,0,2)}{bevgrp(P05)}{P02}{0}++ if B03==1 and B04==1 and B07==1;
# Ausgabe

# sterb mit 3-stelliger Altersgruppe
$bb->{substr(R02,0,2)}{bevgrp(P05)}{P02}{A01}++ if B03==2 and B04==2 and B07==1;
# Ausgabe

# strom mit P05 als Bevölkerungsgruppe und 3-stelliger Altersgruppe
$bb->{substr(R02,0,2)}{substr(RQZ,0,2)}{P05}{P02}{A01}++ if B03==2 and B04==4 and B07==1;
# Ausgabe