#0: print("Start der revbook-Initialisierung") init.revbook() revbook.obj.flag<-T if(dev.cur()==1){ if(exists("win.graph")) win.graph() else motif() } synchronize() print("Start der Initialisierung - Kapitel Masszahlen - 2.10.97") auswahl.masszahlen<-function(){ eval(local=sys.parent(),expression=parse(text= 'repeat{ switch(Menu( c( "Abbruch/Ende", "lege Daten auf x ab", "zeige x an", "zeige Rangwertreihe von x an", "berechne Mittelwert", "berechne Median", "berechne Extrema", "berechne Midrange", "berechne getrimmtes Mittel", "berechne Trimean", "berechne Stichprobenvarianz", "berechne Standardabweichung", "berechne Inter-Quartilsabstand", "berechne zusammenfassende Statistiken", "transformiere mittels Box-Cox-Transformation"), report=T), { break },{ switch(Menu( c("Abbruch/Ende", "Zeitdifferenzen vom 03.02.97", "Zeitdifferenzen vom 17.02.97", "Datenmengen vom 03.02.97", "Datenmengen vom 17.02.97", "Datenmengen/Zeitdifferenzen vom 03.02.97", "Datenmengen/Zeitdifferenzen vom 17.02.97", "Merkmal aus Studentenumfrage 1995", "Merkmal aus Studentenumfrage 1996", "Merkmal aus Studentenumfrage 1997" ) ), "", x<-dzeitpunkte.03.02.97, x<-dzeitpunkte.17.02.97, x<-mengen.03.02.97, x<-mengen.17.02.97, x<-mengen.03.02.97/dzeitpunkte.03.02.97, x<-mengen.17.02.97/dzeitpunkte.17.02.97, x<-select.spalte(frabo95), x<-select.spalte(frabo96), x<-select.spalte(frabo97) ) },{ cat("Daten x: \n") print(x) outin() },{ cat("Rangwertreihe von x: \n") print(sort(x)) outin() },{ cat("Mittelwert\n") print(mean(x)) },{ cat("Median\n") print(median(x)) },{ cat("Maximum\n") print(max(x)) cat("Minimum\n") print(min(x)) },{ cat("Midrange\n") print((min(x)+max(x))/2) },{ cat("getrimmtes Mittel\n") cat("Wieviel Prozent sollen an jeder Seite enfernt werden?\n") cat(" Eingabe:\n") result<-mean(x,trim=min(.5,.01*c(scan(,0,n=1),0)[1])) cat(" ergibt:\n") print(result) },{ cat("Trimean\n") print(sum(c(0.25,0.5,0.25)*quantile(x,c(0.25,0.5,0.75)))) },{ cat("Stichprobenvarianz\n") print(var(x)) },{ cat("Stichprobenstandardabweichung\n") print(var(x)^0.5) },{ cat("Inter-Quartilsabstand\n") print(as.vector(quantile(x,0.75)-quantile(x,0.25))) },{ cat("Zusammenfassende Statistiken\n") print(summary.stats(x)) },{ cat("Statistiken der transformierten Daten\n") xtrans<-box.cox.transformation(x) print(summary.stats(xtrans)) print("Wollen Sie das Transformationsergebnis auf x ablegen (j/n)?") if(readline()[1]=="j") x<-xtrans } ) }')) } print("Ende der Initialisierung - Kapitel Masszahlen") print("Start der Initialisierung - Kapitel Graphiken - 22.9.97") auswahl.graphiken<-function(){ eval(local=sys.parent(),expression=parse(text= 'repeat{ switch(Menu( c("Abbruch/Ende", "lege Daten auf [[x]] ab", "bilde Ausschnitt der Daten", "erstelle graphische 5-Zahlen-Zusammenfassung", "erstelle Boxplot", "erstelle Jitterplot", "erstelle Stabdiagramm", "erstelle Haeufigkeitstabelle", "erstelle Stem-and-Leaf-Plot", "erstelle Histogramm", "erstelle Histogramm mit manuellen Grenzen", "erstelle Dichtespur", "aktiviere interaktives Dichtespur-Sektion", "erstelle F.dach", "erstelle F.dach mit manuellen Grenzen", "befrage F.dach graphisch", "transformiere mittels Box-Cox-Transformation"), report=T ), { break },{ switch(Menu( c("Abbruch/Ende", "Zeitdifferenzen vom 03.02.97", "Zeitdifferenzen vom 17.02.97", "logarithmierte Datenmengen vom 03.02.97", "logarithmierte Datenmengen vom 17.02.97", "Datenmengen vom 03.02.97", "Datenmengen vom 17.02.97", "Datenmengen/Zeitdifferenzen vom 03.02.97", "Datenmengen/Zeitdifferenzen vom 17.02.97", "Merkmal aus Studentenumfrage 1995", "Merkmal aus Studentenumfrage 1996", "Merkmal aus Studentenumfrage 1997" ) ), "", x<-dzeitpunkte.03.02.97, x<-dzeitpunkte.17.02.97, x<-log(mengen.03.02.97), x<-log(mengen.17.02.97), x<-mengen.03.02.97, x<-mengen.17.02.97, x<-mengen.03.02.97/dzeitpunkte.03.02.97, x<-mengen.17.02.97/dzeitpunkte.17.02.97, x<-select.spalte(frabo95), x<-select.spalte(frabo96), x<-select.spalte(frabo97) ) },{ cat("Entfernung extremer Werte\n") x<-remove.extreme.values(x) },{ cat("Graphische 5-Zahlen-Zusammenfassung\n") boxplot(x,range=0) },{ cat("Boxplot\n") boxplot(x) },{ cat("Jitterplot\n") jitterplot(x) },{ cat("Stabdiagramm\n") stabdiagramm(x) },{ cat("Haeufigkeitstabelle von x\n") print(table(x)) outin() },{ cat("Stem-and-Leaf-Plot\n") stem.and.leaf(x) outin() },{ cat("Histogramm\n") histogramm(x) },{ cat("Histogramm mit manuell eingegebenen Klassengrenzen") print("Grenzen nach einander eingeben") print("Nach Eingabe der letzten Klasse noch einmal: -> ENTER") print("Hinweis: Alle Werte muessen sich innerhalb der Grenzen befinden!") histogramm(x,breaks=sort(scan(,0))) },{ cat("Dichtespur\n") dichtespur(x) },{ cat("interaktive Dichtespur\n") dichtespur.interaktiv(x) },{ cat("Verteilungsfunktion\n") F.dach(x) },{ cat("emp. Vtlgsfktn mit manuell eingegebenen Klassengrenzen") print("Grenzen nach einander eingeben") print("Nach Eingabe der letzten Klasse noch einmal: -> ENTER") F.dach(x,breaks=sort(scan(,0))) },{ cat("Graphische Befragung der empirischen Verteilungsfunktion\n") F.dach(x) F.dach.look.up(x) },{ cat("Statistiken der transformierten Daten\n") xtrans<-box.cox.transformation(x) print(summary(xtrans)) print("Wollen Sie das Transformationsergebnis auf x ablegen (j/n)?") if(readline()[1]=="j") x<-xtrans } ) }')) } print("Ende der Initialisierung - Kapitel Graphiken") print("Start der Initialisierung - Kapitel multivariate Graphiken - 5.8.97") a<-auswahl.mgraphiken<-function(){ eval(local=sys.parent(),expression=parse(text= 'repeat{ switch(Menu( c( "Abbruch/Ende", "lege Datensaetze zur Bearbeitung auf xy ab", "modifiziere Datensaetze xy", "lege einen Datensatz von xy auf x ab", "ermittle einige MaÞzahlen zu xy", "erstelle Boxplot zu xy", "erstelle Jitterplot zu xy", "zeichne Histogramme zu xy", "zeichne Dichtespuren zu xy", "zeichne F.dach zu xy", "zeichne zu xy F.dach und f.dach", "erstelle Scatterplot zu den ersten beiden Elementen von xy", "erstelle Scatterplot zu xy und zeichne konvexe Huellen", "erstelle zu xy[1:2] einen QQ-Plot", "erstelle Draftsmans Display zu xy", "erstelle zum paarweisen Vergleich von xy QQ-Plots", "mache mit xy Bootstrap-Experimente", "Kontingenztabellenfunktion mit xy" ), report=T ), { break },{ cat("Sollen die Daten von xy geloescht werden? (j/n)\n") r<-c(scan(,"",n=1),"n")[1] r<-substring(r,1,1) if(exists("xy")){ if(r=="j" | r=="J") xy<-NULL } else xy <- NULL repeat{ cat("Welche Datensaetze sollen an xy angefuegt werden?\n") switch(Menu( c("Abbruch/Ende", "Zeitdifferenzen vom 03.02.97", "Zeitdifferenzen vom 17.02.97", "Datenmengen vom 03.02.97", "Datenmengen vom 17.02.97", "Zeiten vom 03.02.97", "Zeiten vom 17.02.97", "Regen-Getreideertraege", "Auto1", "Auto2", "Name einer Splus-Variablen", "eigene Daten, selbst einzugeben", "Merkmal aus Studentenumfrage 1995", "Merkmal aus Studentenumfrage 1996", "Merkmal aus Studentenumfrage 1997" ) ), break, xy<-c(xy,dz.03.02=list(dzeitpunkte.03.02.97)), xy<-c(xy,dz.17.02=list(dzeitpunkte.17.02.97)), xy<-c(xy,m.03.02=list(mengen.03.02.97)), xy<-c(xy,m.17.02=list(mengen.17.02.97)), xy<-c(xy,z.03.02=list(zeitpunkte.03.02.97)), xy<-c(xy,z.17.02=list(zeitpunkte.17.02.97)), xy<-c(xy,list(corn.rain,corn.yield)), xy<-c(xy,list(car.time,car.miles,car.gals)), xy<-c(xy,list(auto.stats[,1], auto.stats[,2], auto.stats[,8], auto.stats[,9], auto.stats[,10])), {cat("Bitte S-Plus-Namen eingeben\n") xy<-c(xy,list(eval(parse(text=scan(,"",n=1)))))}, {cat("Bitte Werte einzeln eingeben\n") xy<-c(xy,list(scan(,0))) }, xy<-select.and.split(frabo95), xy<-select.and.split(frabo96), xy<-select.and.split(frabo97) ) } },{ switch(Menu( c( "Abbruch/Ende", "Komponente entfernen", "Ausschnitte der Komponenten bilden", "Werte einer Komponente begrenzen", "Box-Cox-Transformationen durchfuehren", "xy in anz gleich umfangreiche Klassen teilen", "xy[1] gemaess xy[2] in anz Klassen teilen") ), { " " },{ cat("Komponente von xy entfernen\n") print(paste("xy besitzt",length(xy),"Komponenten")) print("Welche Komponente soll entfernt werden?") h<-c(scan(,0,n=1),0)[1] xy[[h]]<-NULL },{ cat("Entfernung extremer Werte\n") xy<-remove.extreme.values(xy) },{ cat("Begrenzung extremer Werte von xy\n") xy<-limit.values(xy) },{ cat("Box-Cox-Transformation von xy\n") xy<-box.cox.transformation(xy) },{ cat("xy in gleich grosse Klassen einteilen: xy\n") xy<-split.in.eq.classes(xy) },{ cat(paste(getnames(xy)[1],"gemaess",getnames(xy)[2])) cat("in anz Klassen einteilen\n") xy<-split.x.by.y(xy[[1]],xy[[2]]) } ) },{ cat("Speicherung einer Komponente auf x\n") print("Der Datensatz besitzt die Komponenten") print(getnames(xy)) print("Geben Sie die Nummer der Komponente an,") print("die auf x abgelegt werden soll.") n<-floor(c(scan(,0,n=1),0)[1]) if(1<=n&n<=length(xy)) x<-xy[[n]] },{ switch(Menu( c( "Abbruch/Ende", "zusammenfassende Statistiken", "Anzahlen der einzelnen Datensaetze", "Korrelationskoeffizienten") ), { break },{ cat("Berechnung der zusammenfassenden Statistiken von xy\n") print(summary.stats(xy)) },{ cat("Anzahlen der Stichproben von xy\n") print(lapply(xy,length)) },{ cat("Berechnung des Korrelationskoeffizienten zu xy\n") print(cor(xy[[1]],xy[[2]])) } ) out.in() },{ cat("Boxplots zu xy\n") boxplot(xy) },{ jitterplot(xy) },{ cat("Histogramme zu xy\n") print("Wie viele Klassen sind sollen gebildet werden?") nclass<-c(scan(,0,n=1),7)[1] histogramm(xy,nclass=nclass) },{ cat("Dichtespuren zu xy\n") dichtespur(xy) },{ cat("F.dach zu xy zeichnen\n") F.dach(xy) },{ cat("F.dach und f.dach zu xy[1:2]\n") OLDPAR<-par(); par(mfrow=2:1) cat("F.dach zu xy zeichnen\n") F.dach(xy) cat("Dichtespuren zu xy\n") dichtespur(xy) par(OLDPAR) },{ cat("Scatterplot zu xy\n") scatter(xy) },{ cat("Scatterplot von xy mit Huellen\n") scatter(xy, hull=100) },{ cat("QQ-Plot von xy[1:2]\n") qqplot(xy[[1]],xy[[2]],xlab=getnames(xy)[1],ylab=getnames(xy)[2]) abline(0,1) },{ pairs(matrix(unlist(xy),ncol=length(xy)),labels=as.character(1:length(xy))) },{ cat("QQ-Plots zwischen den einzelnen Datensaetzen von xy\n") qqpairsplot(xy) },{ cat("Bootstrap-Experimente mit xy\n") bootstrap.experiment(xy,type="?") },{ cat("Bearbeitung von Kontingenztabellen\n") cat("Handelt es sich bei den Daten xy bereits um eine\n") cat("Kontingenztabelle? (j=ja)\n") kt.work(xy,is.xy.kt=("j"==readline())) } ) }')) } print("Ende der Initialisierung - Kapitel multivariate Graphiken") print("Start der Initialisierung - Kapitel Modelle - 27.9.97") a<-auswahl.modelle<-function(){ eval(local=sys.parent(),expression=parse(text= 'repeat{ switch(Menu( c( "Abbruch", "lege Datensaetze zur Bearbeitung auf x ab", "erzeuge Stichprobe x", "modifiziere Datensaetze x", "zeige x an, berechne Statistiken, stelle x dar", "aktiviere Verteilungskalkulator", "erstelle Verteilungs-Erkennungsplots", "erstelle QQ-Plots zur Modellueberpruefung", "erstelle Durchschnittskurven", "ermittle Belastung im Zeitablauf" ), report=T ), { break },{ cat("Datensatz auswaehlen!\n") switch(Menu(c( "keine neue Belegung von x", "Zeitdifferenzen vom 03.02.97", "Zeitdifferenzen vom 17.02.97", "Datenmengen vom 03.02.97", "Datenmengen vom 17.02.97", "Zeiten vom 03.02.97", "Zeiten vom 17.02.97", "Name einer Splus-Variablen", "eigene Daten, selbst einzugeben") ), x<-x, x<-c(dz.03.02=dzeitpunkte.03.02.97), x<-c(dz.17.02=dzeitpunkte.17.02.97), x<-c(m.03.02=mengen.03.02.97), x<-c(m.17.02=mengen.17.02.97), x<-c(z.03.02=zeitpunkte.03.02.97), x<-c(z.17.02=zeitpunkte.17.02.97), {cat("Bitte S-Plus-Namen eingeben\n") x<-c(eval(parse(text=scan(,"",n=1))))}, {cat("Bitte Werte einzeln eingeben\n") x<-c(scan(,0))} ) },{ switch(Menu( c( "keine neue Belegung von x", "Binomial-Verteilung", "geometrische Verteilung", "Exponentialverteilung", "Poisson-Verteilung" ) ),{ x<-x },{ cat("Stichprobe aus Binomial-Verteilung\n") print("Wie gross soll der Parameter n sein (Default: n=1)?") n<-c(scan(,0,n=1),1)[1] print("Wie gross soll der Parameter p sein (Default: p=0.5)?") p<-c(scan(,0,n=1),0.5)[1] print("Wie viele Zufallszahlen wollen Sie (Default: r=100)?") r<-c(scan(,0,n=1),100)[1] print("Zufallsstartgeneratorstart (Default: ZZ=17)?") ZZ<-c(scan(,0,n=1),17)[1] set.seed(ZZ) x<-rbinom(r,n,p) },{ cat("Stichprobe aus geometrischer Verteilung\n") print("Welches p wuenschen Sie (Default=0.5)? p=?") p<-c(scan(,0,n=1),.5)[1] print("Welche Wiederholungsanzahl n wuenschen Sie (Default=100)? n=?") n<-c(scan(,0,n=1),100)[1] print("Welchen Zufallsgeneratorstart ZZ wuenschen Sie (Default=17)? ZZ=?") ZZ<-c(scan(,0,n=1),17)[1] set.seed(ZZ) x<-rgeom(n,p) },{ cat("Stichprobenziehung -- Exponentialverteilung\n") print("Welches lambda wuenschen Sie (Default=1)? lambda=?") lambda<-c(scan(,0,n=1),1)[1] print("Welchen Stichprobenumfang n wuenschen Sie (Default=100)? n=?") n<-c(scan(,0,n=1),100)[1] print("Welchen Zufallsgeneratorstart ZZ wuenschen Sie (Default=17)? ZZ=?") ZZ<-c(scan(,0,n=1),17)[1] set.seed(ZZ) x<-rexp(n,lambda) },{ cat("Stichprobenziehung -- Poisson-Verteilung\n") print("Welches lambda wuenschen Sie (Default=1)? lambda=?") lambda<-c(scan(,0,n=1),1)[1] print("Welchen Stichprobenumfang n wuenschen Sie (Default=100)? n=?") n<-c(scan(,0,n=1),100)[1] print("Welchen Zufallsgeneratorstart ZZ wuenschen Sie (Default=17)? ZZ=?") ZZ<-c(scan(,0,n=1),17)[1] set.seed(ZZ) x<-rpois(n,lambda) } ) },{ switch(Menu(c("Abbruch: keine Modifikation von x", "Ausschnitt aus x bilden", "Differenzen von x auf x ablegen", "Box-Cox-Transformationen durchfuehren", "Minuten mit Zugriff bei Sekundendaten ermitteln", "Fehlversuche bis Erfolg ermitteln", "Wartezeiten x jenseits x.0 auf x ablegen" ) ),{ x<-x },{ cat("Entfernung extremer Werte\n") x<-remove.extreme.values(x) },{ if(all(x==sort(x))) x<-diff(x) else print("x fuer diff ungeeignet!") },{ cat("Statistiken der transformierten Daten\n") xtrans<-box.cox.transformation(x) print(summary.stats(xtrans)) print("Wollen Sie das Transformationsergebnis auf x ablegen (j/n)?") if(readline()[1]=="j") x<-xtrans },{ cat("Aktivitaet pro Minute aus Sekundendaten ermitteln\n") x<-(x%%86400)/60 x<-pmin(1,as.vector(table(cut(x,0:1440)))) },{ x<-diff((1:length(x))[x==1])-1 },{ x_x[x>=x.0] - x.0 } ) },{ switch(Menu(c("Abbruch: keine Darstellung", "Daten anzeigen", "Statistiken berechnen", "horizontale Staebe zeichnen", "Darstellung von Beobachtungen, diskret", "Darstellung von Beobachtungen, kontinuierlich" ) ),{ x<-x },{ cat("Anfang von x anzeigen\n") print("Wie viele Werte von x sollen angezeigt werden (Default=100)?") print(x[1:c(scan(,0,n=1),min(100,length(x)))[1]]) outin() },{ cat("Zusammenfassende Statistiken\n") print(summary.stats(x)) outin() },{ cat("Plot von x als Staebe\n") h<-length(x) plot(c(0,max(x)+1),c(0,h), type="n",xlab="x",ylab="Index") segments(0,1:h,x,1:h) },{ par(mfrow=c(2,2)) cat("Jitterplot\n") jitterplot(x) cat("Boxplot\n") boxplot(x) cat("Stabdiagramm\n") stabdiagramm(x) cat("Verteilungsfunktion\n") F.dach(x) par(mfrow=c(1,1)) cat("Zusammenfassende Statistiken\n") print(summary.stats(x)) },{ par(mfrow=c(2,2)) cat("Jitterplot\n") jitterplot(x) cat("Boxplot\n") boxplot(x) cat("Histogramm\n") histogramm(x) cat("Verteilungsfunktion\n") F.dach(x) par(mfrow=c(1,1)) cat("Zusammenfassende Statistiken\n") print(summary.stats(x)) } ) },{ switch(Menu(c("Abbruch: keinen Kalkulator aktivieren", "Binomial-Verteilung", "geometrische Verteilung", "Exponentialverteilung", "Poisson-Verteilung", "Normal-Verteilung" ) ),{ x<-x },{ cat("Binomial-Kalkulator\n") binomial.calculator() },{ cat("geometrischer Kalkulator\n") geometric.calculator() },{ cat("Exponential-Kalkulator\n") exponential.calculator() },{ cat("Poisson-Kalkulator\n") poisson.calculator() },{ cat("Aktivierung des Normalverteilungskalkulators\n") normal.calculator() } ) },{ switch(Menu(c("Abbruch: keinen Erkennungsplot zeichnen", "geometrische Verteilung", "Exponentialverteilung", "Poisson-Verteilung" ) ),{ x<-x },{ cat("Erkennungsplot fuer geometrische Verteilung\n") print("Plot und Daten aufgrund der Stichprobe") print(geom.p.est(x)) },{ cat("Exponential-Erkennungsplot\n") print(identify.exp(x)) },{ cat("Poisson-Erkennungsplot\n") print(identify.pois(x)) } ) },{ cat("QQ-Plot\n") qq.x.model(x) },{ cat("Plot der Durchschnitte der ersten k Elemente gegen k\n") h<-cumsum(x)/(1:length(x)) plot(c(1,length(x)),c(max(1,max(h)),min(0,min(h))), type="n",xlab="k",ylab="Durchschnitte") lines(1:length(x), h) },{ interval.est.lambda(x) } ) }')) } print("Ende der Initialisierung - Kapitel Modelle") print("Start der Initialisierung - Kapitel Normalverteilung - 2.10.97") print("Ende der Initialisierung - Kapitel Normalverteilung") menu.jump<-look.act.points.up() cat("------------------------------\n") cat(" Abk.: lange Bezeichnung:\n") cat("------------------------------\n") activate.jump(menu.jump) #:0 #1: cat("Revbook:1.a:start.mz:Kapitel Masszahlen\n") #:1 #2: #119: cat("x <- dzeitpunkte.03.02.97\n") x<-dzeitpunkte.03.02.97 #:119 #120: cat("x ausdrucken\n") print(x) #:120 #:2 #3: #121: cat("Mittelwert\n") print(mean(x)) #:121 #:3 #4: #122: cat("Median\n") print(median(x)) #:122 #:4 #5: #123: cat("Maximum\n") print(max(x)) cat("Minimum\n") print(min(x)) #:123 #:5 #6: #124: cat("Midrange\n") print((min(x)+max(x))/2) #:124 #:6 #7: #125: cat("getrimmtes Mittel\n") cat("Wieviel Prozent sollen an jeder Seite enfernt werden?\n") cat(" Eingabe:\n") result<-mean(x,trim=min(.5,.01*c(scan(,0,n=1),0)[1])) cat(" ergibt:\n") print(result) #:125 #:7 #8: #126: cat("Trimean\n") print(sum(c(0.25,0.5,0.25)*quantile(x,c(0.25,0.5,0.75)))) #:126 #:8 #9: #127: cat("Spannweite\n") print(max(x)-min(x)) #:127 #:9 #10: #128: cat("Stichprobenvarianz\n") print(var(x)) #:128 #:10 #11: #129: cat("Stichprobenstandardabweichung\n") print(var(x)^0.5) #:129 #:11 #12: #130: cat("Inter-Quartilsabstand\n") print(as.vector(quantile(x,0.75)-quantile(x,0.25))) #:130 #:12 #13: #131: cat("Zusammenfassende Statistiken\n") print(summary.stats(x)) #:131 #:13 #14: #132: cat("Statistiken der transformierten Daten\n") xtrans<-box.cox.transformation(x) print(summary.stats(xtrans)) print("Wollen Sie das Transformationsergebnis auf x ablegen (j/n)?") if(readline()[1]=="j") x<-xtrans #:132 #:14 #15: cat("Revbook:1.m:menu.mz:Menue Masszahlen\n") #133: auswahl.masszahlen() #:133 #:15 #16: cat("Revbook:2.a:start.gr:Kapitel Graphische Beschreibungstechniken\n") #:16 #17: #136: cat("Zwischen-Zeitpunkte vom 03.02.97 als Daten -> x\n") x<-dzeitpunkte.03.02.97 #:136 #:17 #18: #137: cat("Graphische 5-Zahlen-Zusammenfassung\n") boxplot(1:5,range=0) #:137 #:18 #19: #138: cat("Graphische 5-Zahlen-Zusammenfassung\n") boxplot(x,range=0) #:138 #:19 #20: #140: cat("Boxplot\n") boxplot(x) #:140 #:20 #21: #141: cat("10 kleinsten Werte von x:\n") print(sort(x)[1:10]) cat("10 groessten Werte von x:\n") print(rev(sort(x))[1:10]) #:141 #:21 #22: #139: cat("Boxplot der logarithmierten Daten\n") boxplot(log(x)) #:139 #:22 #23: #142: cat("Entfernung extremer Werte\n") x<-remove.extreme.values(x) #:142 #:23 #24: #140: cat("Boxplot\n") boxplot(x) #:140 #:24 #25: #143: boxplotexp() #:143 #:25 #26: #144: cat("Jitterplot\n") jitterplot(x) #:144 #:26 #27: #145: cat("Stabdiagramm\n") stabdiagramm(x) #:145 #:27 #28: #146: cat("Haeufigkeitstabelle von x\n") print(table(x)) #:146 #:28 #29: #147: cat("spezielles Balkendiagramm\n") balkendiagramm(x,c(0,100,200,300,400,500,600,700,800,900,1000,5000)) #:147 #:29 #30: #148: cat("Stem-and-Leaf-Plot\n") stem.and.leaf(x) #:148 #:30 #31: #149: cat("Histogramm\n") histogramm(x) #:149 #:31 #32: #150: cat("Histogramm\n") hxh<-pmin(5000,pmax(0,x)) if(length(hxh)!=length(x)) cat("Warnung: Werte wurden auf den Bereich [0,5000] reduziert!\n") histogramm(hxh,breaks=seq(from=0,to=5000,by=200)) #:150 #:32 #33: #151: cat("Histogramm mit manuell eingegebenen Klassengrenzen") print("Grenzen nach einander eingeben") print("Nach Eingabe der letzten Klasse noch einmal: -> ENTER") print("Hinweis: Alle Werte muessen sich innerhalb der Grenzen befinden!") histogramm(x,breaks=sort(scan(,0))) #:151 #:33 #34: #152: cat("Dichtespur\n") dichtespur(x) #:152 #:34 #35: #153: cat("interaktive Dichtespur\n") dichtespur.interaktiv(x) #:153 #:35 #36: #154: cat("Verteilungsfunktion\n") F.dach(x) #:154 #:36 #37: #155: cat("Empirischen Verteilungsfunktion -- klassierte Daten\n") F.dach(x,breaks=seq(from=0,to=5000,by=40)) #:155 #:37 #38: #156: cat("emp. Vtlgsfktn mit manuell eingegebenen Klassengrenzen") print("Grenzen nach einander eingeben") print("Nach Eingabe der letzten Klasse noch einmal: -> ENTER") F.dach(x,breaks=sort(scan(,0))) #:156 #:38 #39: #157: cat("Graphische Befragung der empirischen Verteilungsfunktion\n") F.dach(x) F.dach.look.up(x) #:157 #:39 #40: cat("Revbook:2.m:menu.gr:Menue Graphische Beschreibungstechniken\n") #158: auswahl.graphiken() #:158 #:40 #41: cat("Revbook:3.a:start.mu:Kapitel Multivariate Beschreibungstechniken\n") #:41 #42: #162: cat("Zusammenfassung von dzeitpunkte vom 03.02.97 und 17.02.97 auf xy\n") xy<-list(dz.03.02.97=dzeitpunkte.03.02.97, dz.17.02.97=dzeitpunkte.17.02.97) #:162 #:42 #43: #163: cat("Berechnung der zusammenfassenden Statistiken von xy\n") print(summary.stats(xy)) #:163 #:43 #44: #164: cat("Boxplots zu xy\n") boxplot(xy) #:164 #:44 #45: #165: cat("Entfernung extremer Werte\n") xy<-remove.extreme.values(xy) #:165 #:45 #46: #164: cat("Boxplots zu xy\n") boxplot(xy) #:164 #:46 #47: #166: cat("Histogramme zu xy\n") print("Wie viele Klassen sind sollen gebildet werden?") nclass<-c(scan(,0,n=1),7)[1] histogramm(xy,nclass=nclass) #:166 #:47 #48: #167: cat("F.dach und f.dach zu xy[1:2]\n") OLDPAR<-par(); par(mfrow=2:1) #187: cat("F.dach zu xy zeichnen\n") F.dach(xy) #:187 #188: cat("Dichtespuren zu xy\n") dichtespur(xy) #:188 par(OLDPAR) #:167 #:48 #49: #168: cat("QQ-Plot von xy[1:2]\n") qqplot(xy[[1]],xy[[2]],xlab=getnames(xy)[1],ylab=getnames(xy)[2]) abline(0,1) #:168 #:49 #50: #169: cat("Bootstrap-Stichprobenverteilungen mit xy\n") bootstrap.experiment(xy) #:169 #:50 #51: #170: bootstrap.experiment(xy,type="?") #:170 #:51 #52: #171: cat("Speicherung der dzeitpunkte und Mengen vom 03.02.97 auf xy\n") xy<-cbind(dz.03.02.97=dzeitpunkte.03.02.97,m.03.02.97=mengen.03.02.97) xy<-split(xy,col(xy)) #:171 #:52 #53: #172: cat("Scatterplot zu xy\n") scatter(xy) #:172 #:53 #54: #173: cat("Box-Cox-Transformation von xy\n") xy<-box.cox.transformation(xy) #:173 #:54 #55: #172: cat("Scatterplot zu xy\n") scatter(xy) #:172 #:55 #56: #174: cat("Scatterplot von xy mit Huellen\n") scatter(xy, hull=100) #:174 #:56 #57: #175: cat("Berechnung des Korrelationskoeffizienten zu xy\n") print(cor(xy[[1]],xy[[2]])) #:175 #:57 #58: #176: cat("Regen- und Ertragsdaten auf xy ablegen\n") xy<-list("Regen"=corn.rain,"Ertrag"=corn.yield) #:176 #174: cat("Scatterplot von xy mit Huellen\n") scatter(xy, hull=100) #:174 #175: cat("Berechnung des Korrelationskoeffizienten zu xy\n") print(cor(xy[[1]],xy[[2]])) #:175 #:58 #59: #177: cat("Regendatensaetze auf xy ablegen\n") xy<-list("Regen 1"=rain.nyc1,"Regen 2"=rain.nyc2) #:177 #174: cat("Scatterplot von xy mit Huellen\n") scatter(xy, hull=100) #:174 #175: cat("Berechnung des Korrelationskoeffizienten zu xy\n") print(cor(xy[[1]],xy[[2]])) #:175 #:59 #60: #178: cat("Zwischenzeiten vom 03.02.97 auf xy ablegen\n") xy<-list(dzeitpunkte.03.02.97) #:178 #179: cat("xy in gleich grosse Klassen einteilen: xy\n") xy<-split.in.eq.classes(xy) #:179 #:60 #61: #180: pairs(matrix(unlist(xy),ncol=length(xy)),labels=as.character(1:length(xy))) #:180 #:61 #62: #181: cat("Zwischenzeiten und Zeiten auf xy ablegen\n") xy<-list(dzeitpunkte.03.02.97, zeitpunkte.03.02.97) #:181 #182: cat(paste(getnames(xy)[1],"gemaess",getnames(xy)[2])) cat("in anz Klassen einteilen\n") xy<-split.x.by.y(xy[[1]],xy[[2]]) #:182 #:62 #63: #164: cat("Boxplots zu xy\n") boxplot(xy) #:164 #:63 #64: #183: cat("QQ-Plots zwischen den einzelnen Datensaetzen von xy\n") qqpairsplot(xy) #:183 #:64 #65: #184: cat("Anzahlen der Stichproben von xy\n") print(lapply(xy,length)) #:184 #:65 #66: #185: cat("Zeitpunkte vom 03.02.97 auf xy ablegen\n") xy<-list(zeitpunkte.03.02.97) #:185 #:66 #67: #186: jitterplot(xy) #:186 #:67 #68: #187: cat("F.dach zu xy zeichnen\n") F.dach(xy) #:187 #:68 #69: #188: cat("Dichtespuren zu xy\n") dichtespur(xy) #:188 #:69 #70: #189: cat("Umrechnung von Sekunden in Tage, Stunden usw.") print("Geben Sie die Sekunden ein!") h<-c(scan(,0,n=1),0)[1]; ta<-floor(h/86400); h<-h%%86400; st<-floor(h/3600); h<-h%%3600; mi<-floor(h/60); h<-h%%60 print(paste(ta,"Tage",st,"Stunden",mi,"Minuten",h,"Sekunden")) #:189 #:70 #71: cat("Revbook:3.m:menu.mu:Menue Multivariate Beschreibungstechniken\n") #190: auswahl.mgraphiken() #:190 #:71 #72: cat("Revbook:4.a:start.mo:Kapitel Modellierungsschritte\n") #:72 #73: cat("Revbook:4.d1:v.bern:Abschnitt Bernoulli-Verteilung\n") #:73 #74: #197: cat("Zeitpunkte vom 03.02.97 auf x ablegen\n") x<-zeitpunkte.03.02.97 #:197 #198: cat("Aktivitaet pro Minute aus Sekundendaten ermitteln\n") x<-(x%%86400)/60 x<-pmin(1,as.vector(table(cut(x,0:1440)))) #:198 #199: cat("Anfang von x anzeigen\n") print("Wie viele Werte von x sollen angezeigt werden (Default=100)?") print(x[1:c(scan(,0,n=1),min(100,length(x)))[1]]) #:199 #:74 #75: #200: cat("Festlegung der Bedingungen fuer wiederholte Bernoulli-Experimente\n") cat("Legen Sie die Erfolgswahrscheinlichkeit p fest (Default: 0.5): p=?\n") p<-c(scan(,0,n=1),0.5)[1] cat("Legen Sie die Anzahl n der Bernoulli-Experimente fest\n") cat("(Default: 200): n=?\n") n<-c(scan(,0,n=1),200)[1] cat("Zufallsstart: Geben Sie eine ganze Zahl zwischen 0 und 1000 ein\n") cat("(Default: 17): ZZ=?\n") ZZ<-c(scan(,0,n=1),17)[1] #:200 #201: cat("Realisation von wiederholten Bernoulli-Experimenten\n") set.seed(ZZ) x<-rbinom(n,1,p) #:201 #:75 #76: #145: cat("Stabdiagramm\n") stabdiagramm(x) #:145 #:76 #77: #121: cat("Mittelwert\n") print(mean(x)) #:121 #:77 #78: #202: cat("Plot der Durchschnitte der ersten k Elemente gegen k\n") h<-cumsum(x)/(1:length(x)) plot(c(1,length(x)),c(max(1,max(h)),min(0,min(h))), type="n",xlab="k",ylab="Durchschnitte") lines(1:length(x), h) #:202 #:78 #79: #200: cat("Festlegung der Bedingungen fuer wiederholte Bernoulli-Experimente\n") cat("Legen Sie die Erfolgswahrscheinlichkeit p fest (Default: 0.5): p=?\n") p<-c(scan(,0,n=1),0.5)[1] cat("Legen Sie die Anzahl n der Bernoulli-Experimente fest\n") cat("(Default: 200): n=?\n") n<-c(scan(,0,n=1),200)[1] cat("Zufallsstart: Geben Sie eine ganze Zahl zwischen 0 und 1000 ein\n") cat("(Default: 17): ZZ=?\n") ZZ<-c(scan(,0,n=1),17)[1] #:200 #204: cat("Festlegung der Wiederholungsanzahl w\n") cat("Legen Sie die Anzahl w der Wiederholungen der n Versuche fest\n") cat("(Default: 20): w=?\n") w<-c(scan(,0,n=1),20)[1] #:204 #203: cat("Stichprobenziehung\n") set.seed(ZZ) x<-matrix(rbinom(n*(w+1),1,p),(w+1),n) cat("(w+1)-facher Plot der Durchschnitte der ersten k Elemente gegen k\n") plot(c(1,n),c(max(1,max(x)),0),type="n",xlab="k",ylab="Durchschnitte") for(i in 1:(w+1)) lines(1:n, cumsum(x[i,])/(1:n)) cat("Berechnung der zusammenfassender Statistiken\n") print(summary.stats(apply(x,1,sum)/n)) #:203 #:79 #80: #197: cat("Zeitpunkte vom 03.02.97 auf x ablegen\n") x<-zeitpunkte.03.02.97 #:197 #198: cat("Aktivitaet pro Minute aus Sekundendaten ermitteln\n") x<-(x%%86400)/60 x<-pmin(1,as.vector(table(cut(x,0:1440)))) #:198 #131: cat("Zusammenfassende Statistiken\n") print(summary.stats(x)) #:131 #:80 #81: #197: cat("Zeitpunkte vom 03.02.97 auf x ablegen\n") x<-zeitpunkte.03.02.97 #:197 #198: cat("Aktivitaet pro Minute aus Sekundendaten ermitteln\n") x<-(x%%86400)/60 x<-pmin(1,as.vector(table(cut(x,0:1440)))) #:198 #202: cat("Plot der Durchschnitte der ersten k Elemente gegen k\n") h<-cumsum(x)/(1:length(x)) plot(c(1,length(x)),c(max(1,max(h)),min(0,min(h))), type="n",xlab="k",ylab="Durchschnitte") lines(1:length(x), h) #:202 #:81 #82: cat("Revbook:4.d2:v.binom:Abschnitt Binomial-Verteilung\n") #:82 #83: #206: cat("Stichprobe aus Binomial-Verteilung\n") print("Wie gross soll der Parameter n sein (Default: n=1)?") n<-c(scan(,0,n=1),1)[1] print("Wie gross soll der Parameter p sein (Default: p=0.5)?") p<-c(scan(,0,n=1),0.5)[1] print("Wie viele Zufallszahlen wollen Sie (Default: r=100)?") r<-c(scan(,0,n=1),100)[1] print("Zufallsstartgeneratorstart (Default: ZZ=17)?") ZZ<-c(scan(,0,n=1),17)[1] set.seed(ZZ) x<-rbinom(r,n,p) #:206 #:83 #84: #214: #207: par(mfrow=c(2,2)) #144: cat("Jitterplot\n") jitterplot(x) #:144 #140: cat("Boxplot\n") boxplot(x) #:140 #145: cat("Stabdiagramm\n") stabdiagramm(x) #:145 #154: cat("Verteilungsfunktion\n") F.dach(x) #:154 par(mfrow=c(1,1)) #:207 #131: cat("Zusammenfassende Statistiken\n") print(summary.stats(x)) #:131 #:214 #:84 #85: #197: cat("Zeitpunkte vom 03.02.97 auf x ablegen\n") x<-zeitpunkte.03.02.97 #:197 #208: #198: cat("Aktivitaet pro Minute aus Sekundendaten ermitteln\n") x<-(x%%86400)/60 x<-pmin(1,as.vector(table(cut(x,0:1440)))) #:198 x<-apply(matrix(x,60,24),2,sum) #214: #207: par(mfrow=c(2,2)) #144: cat("Jitterplot\n") jitterplot(x) #:144 #140: cat("Boxplot\n") boxplot(x) #:140 #145: cat("Stabdiagramm\n") stabdiagramm(x) #:145 #154: cat("Verteilungsfunktion\n") F.dach(x) #:154 par(mfrow=c(1,1)) #:207 #131: cat("Zusammenfassende Statistiken\n") print(summary.stats(x)) #:131 #:214 #:208 #:85 #86: #209: cat("Binomial-Kalkulator\n") binomial.calculator() #:209 #:86 #87: cat("Revbook:4.d3:v.geom:Abschnitt geometrische Verteilung\n") #:87 #88: #210: cat("Stichprobe aus geometrischer Verteilung\n") print("Welches p wuenschen Sie (Default=0.5)? p=?") p<-c(scan(,0,n=1),.5)[1] print("Welche Wiederholungsanzahl n wuenschen Sie (Default=100)? n=?") n<-c(scan(,0,n=1),100)[1] print("Welchen Zufallsgeneratorstart ZZ wuenschen Sie (Default=17)? ZZ=?") ZZ<-c(scan(,0,n=1),17)[1] set.seed(ZZ) x<-rgeom(n,p) #:210 #:88 #89: #211: cat("Plot von x als Staebe\n") h<-length(x) plot(c(0,max(x)+1),c(0,h), type="n",xlab="x",ylab="Index") segments(0,1:h,x,1:h) #:211 #:89 #90: #214: #207: par(mfrow=c(2,2)) #144: cat("Jitterplot\n") jitterplot(x) #:144 #140: cat("Boxplot\n") boxplot(x) #:140 #145: cat("Stabdiagramm\n") stabdiagramm(x) #:145 #154: cat("Verteilungsfunktion\n") F.dach(x) #:154 par(mfrow=c(1,1)) #:207 #131: cat("Zusammenfassende Statistiken\n") print(summary.stats(x)) #:131 #:214 #:90 #91: #197: cat("Zeitpunkte vom 03.02.97 auf x ablegen\n") x<-zeitpunkte.03.02.97 #:197 #212: #198: cat("Aktivitaet pro Minute aus Sekundendaten ermitteln\n") x<-(x%%86400)/60 x<-pmin(1,as.vector(table(cut(x,0:1440)))) #:198 #213: x<-diff((1:length(x))[x==1])-1 #:213 #:212 #214: #207: par(mfrow=c(2,2)) #144: cat("Jitterplot\n") jitterplot(x) #:144 #140: cat("Boxplot\n") boxplot(x) #:140 #145: cat("Stabdiagramm\n") stabdiagramm(x) #:145 #154: cat("Verteilungsfunktion\n") F.dach(x) #:154 par(mfrow=c(1,1)) #:207 #131: cat("Zusammenfassende Statistiken\n") print(summary.stats(x)) #:131 #:214 #:91 #92: #215: cat("geometrischer Kalkulator\n") geometric.calculator() #:215 #:92 #93: #216: #210: cat("Stichprobe aus geometrischer Verteilung\n") print("Welches p wuenschen Sie (Default=0.5)? p=?") p<-c(scan(,0,n=1),.5)[1] print("Welche Wiederholungsanzahl n wuenschen Sie (Default=100)? n=?") n<-c(scan(,0,n=1),100)[1] print("Welchen Zufallsgeneratorstart ZZ wuenschen Sie (Default=17)? ZZ=?") ZZ<-c(scan(,0,n=1),17)[1] set.seed(ZZ) x<-rgeom(n,p) #:210 #217: print("Wie gross soll x.0 sein (Default: x.0=5)?") x.0<-c(scan(,0,n=1),5)[1] #:217 par(mfrow=2:1) #218: cat("Erkennungsplot fuer geometrische Verteilung\n") print("Plot und Daten aufgrund der Stichprobe") print(geom.p.est(x)) #:218 #219: x_x[x>=x.0] - x.0 #:219 print("Plot und Daten nach Modifikation") #218: cat("Erkennungsplot fuer geometrische Verteilung\n") print("Plot und Daten aufgrund der Stichprobe") print(geom.p.est(x)) #:218 par(mfrow=c(1,1)) #:216 #:93 #94: #197: cat("Zeitpunkte vom 03.02.97 auf x ablegen\n") x<-zeitpunkte.03.02.97 #:197 #212: #198: cat("Aktivitaet pro Minute aus Sekundendaten ermitteln\n") x<-(x%%86400)/60 x<-pmin(1,as.vector(table(cut(x,0:1440)))) #:198 #213: x<-diff((1:length(x))[x==1])-1 #:213 #:212 #218: cat("Erkennungsplot fuer geometrische Verteilung\n") print("Plot und Daten aufgrund der Stichprobe") print(geom.p.est(x)) #:218 #:94 #95: #197: cat("Zeitpunkte vom 03.02.97 auf x ablegen\n") x<-zeitpunkte.03.02.97 #:197 #212: #198: cat("Aktivitaet pro Minute aus Sekundendaten ermitteln\n") x<-(x%%86400)/60 x<-pmin(1,as.vector(table(cut(x,0:1440)))) #:198 #213: x<-diff((1:length(x))[x==1])-1 #:213 #:212 #217: print("Wie gross soll x.0 sein (Default: x.0=5)?") x.0<-c(scan(,0,n=1),5)[1] #:217 #219: x_x[x>=x.0] - x.0 #:219 #218: cat("Erkennungsplot fuer geometrische Verteilung\n") print("Plot und Daten aufgrund der Stichprobe") print(geom.p.est(x)) #:218 #:95 #96: cat("Revbook:4.d4:v.exp:Abschnitt Exponentialverteilung\n") #:96 #97: #220: cat("Stichprobenziehung -- Exponentialverteilung\n") print("Welches lambda wuenschen Sie (Default=1)? lambda=?") lambda<-c(scan(,0,n=1),1)[1] print("Welchen Stichprobenumfang n wuenschen Sie (Default=100)? n=?") n<-c(scan(,0,n=1),100)[1] print("Welchen Zufallsgeneratorstart ZZ wuenschen Sie (Default=17)? ZZ=?") ZZ<-c(scan(,0,n=1),17)[1] set.seed(ZZ) x<-rexp(n,lambda) #:220 #:97 #98: #211: cat("Plot von x als Staebe\n") h<-length(x) plot(c(0,max(x)+1),c(0,h), type="n",xlab="x",ylab="Index") segments(0,1:h,x,1:h) #:211 #:98 #99: #221: #222: par(mfrow=c(2,2)) #144: cat("Jitterplot\n") jitterplot(x) #:144 #140: cat("Boxplot\n") boxplot(x) #:140 #149: cat("Histogramm\n") histogramm(x) #:149 #154: cat("Verteilungsfunktion\n") F.dach(x) #:154 par(mfrow=c(1,1)) #:222 #131: cat("Zusammenfassende Statistiken\n") print(summary.stats(x)) #:131 #:221 #:99 #100: #223: cat("Exponential-Kalkulator\n") exponential.calculator() #:223 #:100 #101: #119: cat("x <- dzeitpunkte.03.02.97\n") x<-dzeitpunkte.03.02.97 #:119 #224: cat("Exponential-Erkennungsplot\n") print(identify.exp(x)) #:224 #:101 #102: #131: cat("Zusammenfassende Statistiken\n") print(summary.stats(x)) #:131 #:102 #103: #225: interval.est.lambda(x) #:225 #:103 #104: cat("Revbook:4.d5:v.pois:Abschnitt Poisson-Verteilung\n") #:104 #105: #226: cat("Stichprobenziehung -- Poisson-Verteilung\n") print("Welches lambda wuenschen Sie (Default=1)? lambda=?") lambda<-c(scan(,0,n=1),1)[1] print("Welchen Stichprobenumfang n wuenschen Sie (Default=100)? n=?") n<-c(scan(,0,n=1),100)[1] print("Welchen Zufallsgeneratorstart ZZ wuenschen Sie (Default=17)? ZZ=?") ZZ<-c(scan(,0,n=1),17)[1] set.seed(ZZ) x<-rpois(n,lambda) #:226 #:105 #106: #214: #207: par(mfrow=c(2,2)) #144: cat("Jitterplot\n") jitterplot(x) #:144 #140: cat("Boxplot\n") boxplot(x) #:140 #145: cat("Stabdiagramm\n") stabdiagramm(x) #:145 #154: cat("Verteilungsfunktion\n") F.dach(x) #:154 par(mfrow=c(1,1)) #:207 #131: cat("Zusammenfassende Statistiken\n") print(summary.stats(x)) #:131 #:214 #:106 #107: #227: cat("Poisson-Erkennungsplot\n") print(identify.pois(x)) #:227 #:107 #108: #228: cat("Poisson-Kalkulator\n") poisson.calculator() #:228 #:108 #109: #119: cat("x <- dzeitpunkte.03.02.97\n") x<-dzeitpunkte.03.02.97 #:119 #229: cat("QQ-Plot\n") qq.x.model(x) #:229 #:109 #110: cat("Revbook:4.m:menu.mo:Menue Modellierungsschritte\n") #230: auswahl.modelle() #:230 #:110 #111: cat("Revbook:5.a:start.nv:Kapitel Normalverteilung\n") #:111 #112: #251: cat("Demonstration der Approximation der Binomialverteilung durch\n") cat("die Normalverteilung\n") demo.Laplace() #:251 #:112 #113: #252: cat("Demonstration der Approximation von standardisierten\n") cat("Stichprobenmitteln durch die Normalverteilung\n") demo.zgws() #:252 #:113 #114: #253: cat("Aktivierung des Normalverteilungskalkulators\n") normal.calculator() #:253 #:114 #115: cat("Revbook:0:MENU:allgemeines Menu\n") cat("------------------------------\n") cat(" Abk.: lange Bezeichnung:\n") cat("------------------------------\n") activate.jump(menu.jump) #:115 #116: cat("------------------------------------\n") cat(" Sie sind am Ende angekommen!") cat(" Waehlen Sie einen neuen Startpunkt! \n") cmds<-"sMENU" #:116 #256: print("Funktionen zum Revbook definieren") attach("_Revbook",pos=1) #257: zeitpunkte.03.02.97<- c(173877, 178739, 203188, 203742, 203906, 205573, 205640, 209310, 209949, 210299, 210382, 210906, 213142, 213545, 213785, 213791, 213922, 213924, 213925, 213969, 214320, 214935, 214949, 214961, 214969, 215075, 215387, 216570, 217267, 218288, 219059, 219105, 219258, 219287, 219959, 220475, 220591, 220876, 220949, 220964, 221084, 221098, 221588, 222376, 222976, 223093, 225865, 226062, 226068, 226079, 226081, 226082, 226101, 226122, 226625, 227999, 228132, 228469, 228789, 230543, 230662, 230706, 231139, 231857, 232015, 232061, 232773, 232831, 232970, 233010, 233175, 233519, 234897, 235485, 235940, 236810, 239219, 240240, 240787, 240797, 240798, 240806, 240846, 240913, 241079, 242224, 243002, 243262, 244777, 245317, 246598, 248563, 248770, 250683, 253013, 253187, 253760, 255462, 255511, 255618, 255908, 256270, 257651) dzeitpunkte.03.02.97<-c(zeitpunkte.03.02.97[1]%%(3600*24), diff(zeitpunkte.03.02.97)) #:257 #258: mengen.03.02.97<- c(14101,105563, 1866, 11505, 216, 19391, 35340, 10746, 205246, 8192, 124667, 25467, 23819, 49226, 2450, 5520, 1646, 2471, 12301, 3431, 1646, 15560, 9287, 5105, 7070, 32116, 1363, 3190, 1548, 12851, 1395, 1001, 16418, 3431, 20106, 35024, 5113, 10395,1589837, 57965, 200133, 98082, 57314, 5113, 1007, 16418, 45354, 18606, 3705, 711, 16418, 1275, 708, 18868, 28354, 92723, 14101, 19533, 25741, 20445, 12671,150325, 4107, 20867, 1434,305118, 23719, 13756, 14101, 345, 25300, 6515, 3406,109591, 14640,197070, 216, 1434, 15747, 1434, 12301, 12451, 15251, 8130, 8687, 19391, 800, 2587, 23719, 345, 836, 4107,1594950, 15871, 10746,140075, 1650, 129, 15688, 561, 122754, 216, 14640) #:258 #259: zeitpunkte.17.02.97<- c(1382822, 1384215, 1384346, 1384788, 1387047, 1388561, 1388822, 1394377, 1395438, 1403951, 1406572, 1407042, 1412097, 1414932, 1415151, 1415161, 1416757, 1416849, 1418675, 1419331, 1419391, 1421413, 1422235, 1422257, 1422303, 1422368, 1422608, 1422906, 1423487, 1423547, 1424076, 1424318, 1425637, 1425819, 1427253, 1427281, 1427302, 1427307, 1427326, 1427682, 1427765, 1428085, 1428687, 1429426, 1430373, 1430374, 1430375, 1430443, 1430530, 1430958, 1430977, 1430992, 1430995, 1431731, 1432460, 1432784, 1434197, 1434355, 1434378, 1434676, 1435392, 1435413, 1436708, 1439140, 1440101, 1440637, 1441413, 1441456, 1442088, 1442378, 1445136, 1447472, 1448909, 1449247, 1449544, 1452266, 1454031, 1454319, 1454503, 1456332, 1459823, 1459830, 1460204, 1461119, 1461847, 1461906, 1466870) dzeitpunkte.17.02.97<-c(zeitpunkte.17.02.97[1]%%(3600*24), diff(zeitpunkte.17.02.97)) #:259 #260: mengen.17.02.97<- c(20760, 2034, 65218, 7526, 6944, 3481, 14115, 1448, 9985, 14115, 1448, 14115, 30273, 1448, 1448, 13012, 18688, 7572, 1551, 18688, 34890, 9723, 2285, 7283, 1448, 1969, 6739,129898, 38348, 14115, 14115, 52438, 38517, 1448, 29969, 10749, 3287, 324, 29140, 8346, 14115, 32836, 14115, 16418, 4024, 445, 10533, 6021, 41378, 1448, 2910, 4051, 29140, 19473, 8346, 345, 27785, 8564, 4425,478920, 30533, 16418, 29083, 14115, 868, 27852, 19473, 12322, 4273,207117, 1448, 12515, 1001, 5519, 87888, 16721, 33964, 22307, 9078, 78540, 14115, 4262, 11289, 18688, 1448, 870, 36422) #:260 #261: # Kuckuckseier a13<-list( .1*c(220,239,209,238,250,240,217,238,228,231,231,235,230,230), .1*c(218,230,233,224,224,230,230,230,239,223,220,226,220,221,211,230), .1*c(198,221,215,209,220,210,223,210,203,209,220,200,208,212,210)) # SO4 1976 a10<-c( 4.8,7.4,3.7,2.7,3.8,8.4,1.6,2.5,7.6,1.6,1.5,1.4,5.8,4.0,5.1,5.1,1.5, 2.8,3.0,0.7,2.1,1.9, 1.6,5.5,1.6,5.8,1.4,1.6,2.2 ) # SO4 1976, 1977, 1978 a11<-list(a10, c( 6.50,7.60,4.20,2.70,3.70,9.10,2.60,2.70,9.10,2.40,1.30,1.60,6.20, 3.90,5.70,5.80,1.50,1.70,1.90,1.80,1.90,1.90,1.50,5.90,1.60,6.90, 1.00,1.40,2.30), c( 4.6,6.8,3.3,2.3,3.6,8.8,1.8,2.8,9.6,2.6,1.9,1.8,5.9,4.9,5.4,5.0, 1.4,1.9,1.5,1.5,1.3,1.5,1.7,5.7,1.4,5.9,0.6,1.0,2.2)) # Stahlhaerte in Rockwell-Einheiten a15<-c(58,49,58,57,50,60,64,65,64,59,65,65,45,54,52,59,65,57,63,54, 65,60,61,47,60,52,63,61,54,63,62,56,56,65,56,64,65,55,59,65, 64,49,65,50,65,61,64,61,59,63,58,57,65,60,55,64,65,59,62,65, 64,54,56,58,40,85,53,61,56,65,58,58,55,52,65,60,65,63,64,63, 60,61,61,65,56,62,65,54,64,63,57,64,62,58,60,52,53,62,56,65) a17<-c(4,1,18,3,4) a18<-c(11,5,6,9,3,8) # 50 Ausspielungen des Lottospiels 6 aus 49 a20<-t(matrix( c(45,33,31,11,34, 5,,25,48,17,38, 2, 3,,13,47,46,35,26,33,,23,15, 9, 5,38,20,, 17,41,31,33,38, 1,,37,48,11,35,26,30,,26,22, 7,32,10,36,, 3,49,31,18,47,27,, 44,48,32, 6,43,25,,13,25,39,11,22, 7,,28, 5, 3,17,13,29,,10,11,46,19,16,45,, 30,38,34,17, 6,42,,44,25,33,10,18,21,, 2,18,11, 1,33, 9,,19,26,41,24,23,21,, 49,45,22,19,36,33,,45,24,43,29,13, 4,,12,36,23,39,15,48,,33,16,39,34, 3,23,, 8,13,26, 3,15,42,,15,10,40,16,48,14,,10,20,33,18,19,42,,43,11,18,26,39,45,, 33,10, 6,29,23,16,, 9,15,35,34,47,11,,44, 9,34,26,24,47,,48,39,34,38,28,29,, 28,49,15,39,41,24,,14, 7,11,12,36,15,,13, 4,45,37, 8,49,,17,15, 7,22,49,14,, 32,33, 3,24,26,28,,37,15,26, 1,32,21,,42, 9,34,30,40,13,,46, 6,14,36, 1,27,, 45,26,37,36,40,49,,48,38,13,30,44,41,, 7,34,24,43,21,48,,46, 4,31, 6, 1,29,, 25,30,36,18, 7,11,,47,39,48,11,35,38,,36,33,40, 7,43,13,, 7,48,23, 4,18, 5,, 22,12,17,39, 3,14,,43,21, 4, 1,47, 5,,22, 2,13,43,15,16,,16,46, 5,10, 2, 4,, 23,12,26,44,18, 6,,21, 9,29,44,20,17) ,6,50)) # verkaufte Stueckzahlen im letzten Monat a21<-c(10,8,14,22,7,10,11,14,15,9,20,12,19,11,16,10,17,8,24,15,11,22,11,14,19) # Haeufigkeit der Zahlen beim Lotto 6 aus 49 a22<-c(223,227,225,207,213,224,211,203,229,213,214,216,175,216,213,215,228,211, 233,218,248,226,219,195,220,229,226,195,210,214,231,249,234,198,215,224, 219,249,223,221,216,228,216,212,218,228,210,238,242) names(a22)<-as.character(1:49) # Warten auf das erste Tor bei Fussballspielen a23<-c(40,65,11,43,34,41,3,1,43,9,21,4,12,41,9,46,14,30,41,7,31,43,25,20,16) # Betriebe und Flaeche a24<-matrix(c(488196,385680,335489,301493,164578, 26051, 7502, 528.4,1281.2,2428.2,4243.3,4839.1,1719.6,2978.3),7,2)) # Todesjahr und Alter a27<-list(1800+c(27,84,95,108,114,118,124,128,136,141,164,165,177), c(13,83,34,1,11,16,68,13,77,74,87,65,83)) # Steuerkriminalitaet a28<-matrix(c(2,26,7,,13,11,6,,9,15,5,,9,9,3),3,4) # PS und SH a31<-list(c(40,45,47,45,45,60,55,48,60,50,75,60,53,75,75,50,55,60, 50,55,53,72,60,64,75,64,75,60,88,68,75,105,75,102,120), c(41,52,56,67,72,69,73,73,65,78,65,72,78,73,70,70,81,82, 82,73,87,91,94,92,86,86,88,88,88,94,113,96,110,109,130)) # Personen pro Zeitspanne a34<-c(65,137,140,85,48,18,7) # Kinobesuche a36<-list(0:6, c(6,8,8,11,14,11,2), c(5,7,12,12,12,7,5)) # radioaktiver Zerfall a39<-list(0:14, c(57,203,38,3525,532,408,273,139,45,27,10,4,0,1,1)) # Kriege a41<-list(0:4,c(223,142,48,15,4)) # Verpackungsmaschinen - Tueten a43<-matrix(c(5,15,30,40,10,,36,60,56,32,16),5,2) # Wahrscheinlichkeitsfunktion 2-Dim. a89<-0.01*matrix(c(2,6,7,7,,5,6,6,9,,10,8,6,5,,12,7,2,2),4,4) #:261 #262: "frabo95"<- structure(.Data = c(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,29,30,31,32,33,34,35, 36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53, 54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71, 72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89, 90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105, 106,107,108,109,110,111,112,113,114,115,116,117,118,119, 120,121,122,123,124,125,126,127,128,129,130,131,132,133, 134,135,136,137,138,139,140,141,142,143,144,145,146,147, 148,149,150,151,152,153,154,155,156,157,158,159,160,161, 162,163,164,165,166,167,168,169,170,171,172,173,174,175, 176,177,178,179,180,181,182,183,184,185,186,187,188,189, 190,191,192,193,194,195,196,197,198,199,200,201,202,203, 204,205,206,207,208,209,210,211,212,213,214,215,216,217, 218,219,220,221,222,223,224,225,226,227,228,229,230,231, 232,233,234,235,236,237,238,239,240,241,242,243,244,245, 246,247,248,249,250,251,1,2,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1, 1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2, 1,1,1,1,1,2,1,1,1,1,3,1,1,1,1,2,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,2,1,1,1,1,1,3,1,1,1,1,1,1,1,1,2, 1,1,2,1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,2,1,1,2,1,1,1, 2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,1,1,2, 2,2,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,0,0, 0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1, 1,1,0,0,0,0,1,1,1,1,1,1,1,0,1,0,0,-1,0,0,0,0,0,0, 1,0,0,0,0,1,0,1,1,0,0,1,1,1,0,1,1,1,1,0,0,0,0,1, 1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0, 0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1, 1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1, 0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1, 1,1,1,1,0,1,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0, 0,0,0,0,0,0,0,0,20,21,21,21,22,21,21,21,27,21,22,21, 23,20,22,21,23,21,22,22,22,20,20,20,20,20,22,19,19,23, 24,22,22,23,21,22,23,19,23,22,20,23,23,22,20,20,22,24, 23,22,24,19,24,22,20,21,22,21,22,20,21,20,19,19,24,19, 22,24,19,19,20,21,24,24,19,19,21,21,19,21,19,22,26,-1, 24,19,19,20,23,22,19,22,24,20,20,21,19,22,21,20,21,22, 20,20,19,20,20,19,20,20,19,20,23,22,18,22,22,24,20,19, 20,19,21,20,21,19,22,20,22,21,22,19,22,20,23,20,22,22, 20,22,21,20,23,20,19,21,20,19,23,25,21,23,19,22,23,21, 20,20,23,23,22,22,23,22,21,19,22,21,21,21,21,20,21,20, 20,20,23,23,20,21,21,20,23,22,21,20,20,22,30,20,21,21, 22,26,21,26,27,23,21,24,21,19,19,22,21,21,22,24,21,23, 22,21,22,21,27,25,21,22,20,19,25,21,22,20,19,21,20,23, 23,21,19,21,23,21,22,18,20,20,21,23,22,20,23,21,20,28, 22,24,28,27,20,165,176,191,181,175,169,191,163,189,170, 185,164,175,186,187,185,198,174,186,180,192,185,181,189, 182,182,175,172,165,184,184,180,180,164,175,176,154,175, 167,165,190,169,180,172,182,180,182,186,188,190,172,170, 183,185,191,186,190,165,164,163,183,178,170,181,168,179, 168,183,160,165,185,176,198,193,165,160,168,175,-1,174, 175,162,180,184,194,176,189,185,193,192,181,169,178,154, 165,178,178,182,182,189,194,162,175,180,184,180,163,179, 185,190,170,170,183,183,172,180,183,180,180,180,185,190, 175,192,169,184,191,187,182,195,178,178,187,195,179,181, 198,187,177,176,175,184,184,176,194,170,165,179,192,188, 170,172,180,170,183,184,-1,180,179,180,184,182,193,181, 172,167,193,183,186,167,172,193,195,173,179,162,195,178, 178,177,182,203,178,180,177,185,180,178,180,187,197,188, 184,184,188,186,189,-1,185,187,187,176,174,163,176,187, 187,162,168,196,188,184,175,184,174,185,183,196,168,174, 163,173,170,182,183,176,168,170,185,177,192,171,180,191, 170,182,179,165,174,165,175,174,185,186,195,184,168,190, 194,166,190,60,68,75,62,70,56,81,54,84,59,85,47,59,73, 80,80,71,60,84,65,85,73,72,95,67,76,70,52,50,82,74,75, 82,62,62,76,46,58,55,63,78,47,65,60,65,63,90,65,85,68, 70,53,77,78,73,85,90,60,55,52,70,72,54,67,63,80,55,83, 48,53,80,70,90,83,54,58,60,65,-1,65,55,48,82,72,92,58, 88,75,80,88,84,60,72,-1,55,70,79,73,75,84,89,50,55,62, 80,80,60,78,78,76,63,62,79,85,60,80,77,78,81,72,79,80, 67,78,57,100,97,86,68,85,75,64,70,88,72,65,96,70,76,71, 66,82,87,81,79,55,60,60,95,98,67,64,78,63,85,84,-1,90, 73,70,85,83,92,82,70,52,81,76,105,58,58,80,80,67,71,55, 89,78,89,67,80,97,64,68,73,72,70,69,100,112,70,78,75, 88,80,80,80,-1,103,78,84,64,72,75,61,73,75,57,60,68,78, 77,87,82,72,90,86,105,45,75,-1,72,60,60,56,60,63,65,78, 75,90,56,75,80,66,68,76,53,64,47,70,57,80,71,88,80,69, 80,84,64,80,1,0,1,1,2,1,1,2,2,1,0,1,1,1,1,1,7,1,0, 2,2,1,1,6,3,0,1,1,3,2,1,2,1,2,2,1,6,2,1,1,0,1,1, 0,1,1,0,0,2,1,0,1,1,2,1,0,1,3,2,1,3,5,1,3,1,3,1, 1,1,1,0,3,0,0,2,1,1,1,0,0,1,1,1,2,3,0,1,1,3,0,0, 2,3,5,2,0,2,1,0,1,2,0,1,4,3,3,1,3,1,0,0,1,0,1,2, 1,1,8,0,1,0,4,1,0,-1,1,1,1,2,1,1,2,1,3,4,3,1,1,1, 2,1,1,1,0,1,1,1,2,1,1,4,3,1,1,1,1,2,1,2,2,0,1,1, 1,2,2,1,1,2,2,2,0,1,2,0,0,2,0,0,1,0,0,2,1,3,1,0, 0,0,0,1,0,2,0,0,1,1,1,3,1,2,1,1,1,3,1,1,1,4,0,1, 1,1,4,1,1,0,1,2,0,0,1,2,3,1,2,2,1,1,1,1,1,3,3,4, 1,2,3,4,2,0,1,0,0,1,0,1,1,1,4,1,1,1,1,1,0,1,0,1, 1,0,0,0,1,0,0,1,0,1,1,1,1,0,0,0,0,0,1,0,0,0,1,0, 0,0,0,1,0,0,0,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0, 0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0, 0,1,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0, 0,0,1,1,0,0,0,0,0,1,1,0,1,0,0,0,1,0,1,0,1,0,1,0, 0,1,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,1, 0,1,1,0,1,1,1,0,0,0,0,1,1,1,0,0,1,1,1,1,0,0,0,0, 0,0,0,0,0,0,1,0,1,1,0,1,0,1,0,0,0,0,1,0,0,0,1,1, 1,0,0,1,1,0,0,0,0,1,0,1,1,0,0,0,0,0,1,1,0,0,1,1, 0,1,0,0,0,0,0,1,1,1,0,0,1,1,1,0,0,0,1,1,0,1,1,0, 0,0,0,0,1,0,0,1,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,1, 1,1,1,1,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0, 0,0,1,1,0,0,1,0,0,1,0,1,0,0,0,1,1,0,1,0,0,0,0,0, 0,0,0,0,1,0,0,0,1,1,1,0,0,1,0,1,1,0,1,0,0,1,0,0, 0,0,1,0,0,0,0,1,0,0,1,1,1,1,1,1,1,0,0,0,0,0,1,1, 0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,0,1,0,1,1,1,0,0, 0,0,1,1,0,0,1,0,0,1,1,1,0,1,0,0,0,1,1,0,0,0,1,1, 1,1,0,1,1,0,1,1,1,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0, 0,1,1,0,0,1,1,0,0,0,0,1,1,0,0,0,0,1,1,1,0,1,1,0, 0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,1,1,1,0,0,0,0,0,0, 0,1,0,0,0,0,1,1,0,1,1,1,0,0,1,1,0,0,1,1,1,0,0,0, 1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,1,1,0,1, 0,1,0,0,0,1,0,1,1,0,0,0,1,0,1,0,0,0,0,1,1,0,0,0, 0,0,1,1,1,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,1, 1,1,0,0,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,0,0,0,0,0, 0,1,1,1,0,0,1,0,0,1,1,1,0,0,0,0,0,0,1,0,1,1,1,1, 0,0,1,0,0,0,0,0,1,0,1,0,1,1,1,0,0,1,0,0,0,0,1,1, 0,1,1,0,0,0,1,0,0,0,0,0,0,1,1,0,0,1,1,1,1,0,1,0, 0,0,1,1,0,0,0,0,0,0,1,0,0,0,1,1,1,1,0,0,1,1,0,1, 0,1,0,1,1,0,1,0,1,1,0,1,0,0,0,0,0,1,0,1,1,1,1,0, 0,0,1,0,0,1,0,0,0,0,0,0,1,0,1,1,1,1,1,0,1,1,1,0, 0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,1,1,0,1,1,0,1,1,1, 1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,1,1,1,0,1,0, 1,0,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,1,1,0,0,1,1,0, 1,0,0,1,1,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1, 0,1,0,1,1,0,1,1,1,1,1,1,1,0,0,1,1,0,1,1,0,0,0,1, 1,1,1,0,1,0,1,0,0,0,0,0,1,0,1,1,1,1,1,0,0,0,1,0, 0,0,1,1,1,1,0,1,1,0,1,1,0,0,1,1,1,0,1,0,1,1,1,1, 0,0,1,1,0,0,1,0,1,0,1,1,1,1,0,1,0,1,0,0,0,0,1,1, 1,0,0,0,1,0,1,0,0,1,1,1,0,0,0,0,1,0,1,0,0,0,0,1, 1,1,1,1,0,1,0,0,0,1,1,1,0,0,1,1,0,1,1,1,0,1,1,0, 1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0, 1,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0, 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,1,0,1,1,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,1,0, 1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0, 0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0, 0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0, 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1, 1,0,0,1,1,0,1,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0, 1,1,1,1,1,0,1,0,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,0, 0,0,1,1,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,0,0,0,1,1, 0,1,0,0,0,0,0,0,1,0,1,0,1,1,0,1,0,0,1,1,0,1,1,1, 1,1,0,1,0,0,1,0,1,0,1,0,0,1,0,1,0,0,0,0,0,1,0,1, 0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,0,1,1,1,0,0,1,1,1, 1,0,1,1,0,0,0,1,1,0,1,0,0,1,0,1,0,1,1,0,0,1,0,0, 1,1,0,1,0,1,0,0,1,1,1,1,0,1,0,1,0,0,0,0,1,0,0,1, 1,0,1,0,1,0,1,0,1,1,1,0,0,0,0,0,0,0,1,1,0,1,0,1, 0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,1,-1,4,3, 4,4,2.3999999999999999,3,-1,3,3,-1,2,3,3,3,5,2,4,3,3,4, 3,3,3,3,1,3,3,3,4,4,1,2,4,4,4,2,3,3,5,4,2,3,3,3, 2,3,2,2,2,2,2,3,4,2,1,3,4,2,2,3,1,3,2,4,1,3,3,5, 4,3,3,3,4,5,4,2,3,2,3,2,4,3,4,3,2,4,5,4,3,2,3,1, -1 ,2,2,3,3,3,3,-1,2,4,4,3,3,2,2,2,2,2,3,3,3,2,1,3, 4,1,4,1,3,3,1,2,3,-1,-1,3,4,3,2,4,3,-1,1,2,3,2,4, 4,3,2,3,3,4,1,3,4,3,4,4,3,2,4,3,3,3,3,4,3,3,-1,3, 5,3,2,-1,2,-1,1,3,4,3,4,2,2,4,1,1,2,5,4,2,5,3,2, 4,3,3,3,3,3,2,4,3,1,-1,3,4,3,1,3,3,4,1,2,4,3,3,2, 3,3,3,3,4,4,2,2,4,3,5,3,2,1,1,3,-1,3,2,5,2,3,3,5, 2,-1,4,3,2,2,2,-1,3,3,-1,2,4,3,-1,3,1,1,1,4,2,1, -1,7,3,1,1,-1,7,2,4,1,7,1,1,1,1,4,4,8,1,4,4,8,2, 8,1,1,1,4,8,8,3,1,1,1,4,4,1,1,3,6,1,1,1,4,4,4,1, 1,1,4,2,2,1,-1,1,1,1,1,3,7,1,8,7,7,1,1,-1,1,7,1, 6,7,1,4,1,1,8,4,2,3,2,6,6,1,1,1,1,-1,2,4,-1,1,8, 3,4,8,2,2,2,-1,6,2,8,1,1,4,7,7,8,1,1,1,1,1,2,2,8, 1,1,8,8,8,1,1,1,7,2,3,4,3,1,8,1,1,4,4,1,1,4,8,4, 1,8,1,-1,7,4,1,4,8,7,1,4,4,6,7,4,4,4,8,8,4,3,4,4, 7,7,-1,2,-1,8,3,3,8,2,1,8,4,3,8,8,1,2,1,1,1,1,1, 1,1,4,7,1,1,8,6,8,8,1,8,1,4,6,7,7,1,1,1,-1,7,1,1, 8,8,4,1,8,3,1,4,7,-1,1,2,8,8,4,4,2,1,2,2,8,8,2,2, 1,1,1,1,4,1,4,8,1),.Dim = c(251,16),.Dimnames = list( character(0),c("1:lfd.Nr","2:Fach","3:Geschlecht","4:Alter", "5:Groesse","6:Gewicht","7:Geschwister","8:Rauchen","9:bei Eltern", "10:Auto->Uni","11:Bus->Uni","12:Fahrrad->Uni","13:Fuss->Uni", "14:Mathe.LKurs","15:Abi.Note","16:Partei"))) "frabo96"<- structure(.Data = c(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,29,30,31,32,33,34,35, 36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53, 54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71, 72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89, 90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105, 106,107,108,109,110,111,112,113,114,115,116,117,118,119, 120,121,122,123,124,125,126,127,128,129,130,131,132,133, 134,135,136,137,138,139,140,141,142,143,144,145,146,147, 148,149,150,151,152,153,154,155,156,157,158,159,160,161, 162,163,164,165,166,167,168,169,170,171,172,173,174,175, 176,177,178,179,180,181,182,183,184,185,186,187,188,189, 190,191,192,193,194,195,196,197,198,199,200,201,202,203, 204,205,206,207,208,209,210,211,212,213,214,215,216,217, 218,219,220,221,222,223,224,225,226,227,228,229,230,231, 232,233,234,235,236,237,238,239,240,241,242,243,244,245, 246,247,248,249,250,251,252,253,254,255,256,257,258,259, 260,261,262,263,264,265,1,1,1,1,1,1,4,4,2,1,1,1,4,4, 4,4,1,1,1,1,1,2,1,1,1,1,1,4,1,1,1,1,1,1,-1,1,1,2, 1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,2,1,1,2,2,1,1,1,1,1,1,1,2,1,1,1,1,1,2, 1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,1,1,2,2,1,2,1, 1,1,1,1,1,1,1,1,1,1,2,1,1,1,-1,1,1,1,1,1,1,2,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2, 1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,2, 1,2,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,1,1,1,1,2,2,1, 1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1, 4,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,-1,0,1,0,0,1,1,0, 1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,1,-1,0,1, 1,0,0,1,1,1,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, 0,0,0,0,0,0,1,0,0,1,0,1,1,0,0,0,1,0,1,0,1,1,0,1, 1,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0, 0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,1,1,0,0, 0,0,0,0,0,0,1,1,1,0,1,1,0,0,0,0,1,1,0,0,0,1,1,1, 0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, 1,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,1,0,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,1,1, 0,0,0,1,0,0,0,0,0,0,1,0,23,21,22,19,20,21,21,22,20, 20,22,21,20,20,19,26,21,20,25,26,22,19,21,20,20,19,23, 20,21,22,20,21,18,21,20,24,24,19,23,24,20,20,20,21,19, 20,23,20,20,21,20,20,24,19,21,20,28,24,20,20,23,21,20, 21,19,21,21,20,23,20,22,21,23,19,20,23,21,21,21,20,21, 23,20,22,21,28,21,22,23,22,22,20,22,21,19,19,19,20,20, 21,24,19,22,20,23,20,21,22,23,20,23,20,18,21,21,24,23, 21,21,20,20,24,19,23,22,21,20,24,21,19,21,20,23,20,20, 20,22,20,20,20,20,21,20,21,21,20,20,22,23,19,20,20,19, 23,27,21,21,24,27,20,21,21,20,19,19,19,21,19,22,19,20, 24,21,20,23,21,21,27,20,18,19,20,24,20,29,26,25,22,24, 26,30,20,20,23,21,20,22,22,21,25,22,20,21,22,20,19,19, 22,23,20,19,19,20,20,19,22,20,27,27,20,24,21,20,21,20, 24,22,23,23,20,20,21,21,21,20,22,19,19,19,23,20,23,21, 23,21,20,20,19,21,24,20,20,20,20,21,20,20,20,21,19,22, 21,20,20,22,171,173,176,170,168,175,198,170,177,198,170, 173,201,168,205,176,184,183,184,180,190,180,172,182,176, 168,176,180,184,190,188,177,172,160,186,184,168,168,183, 180,166,180,171,170,175,175,180,180,191,176,165,184,186, 180,164,180,182,178,183,178,178,188,170,179,180,182,165, 182,197,193,181,178,180,183,175,179,182,188,183,173,175, 176,182,178,171,173,190,180,178,180,187,170,186,181,165, 190,174,177,180,192,175,169,187,165,193,181,180,182,163, 169,183,182,170,175,184,159,178,176,180,190,175,180,170, 173,185,183,187,186,168,170,175,181,180,182,180,175,186, 170,185,168,185,191,192,160,182,185,161,185,182,170,170, 180,160,173,164,170,187,190,180,192,187,186,168,167,163, 175,194,164,170,177,190,185,176,175,167,179,195,180,180, 166,174,180,190,160,186,184,182,185,180,180,181,182,172, 166,185,178,183,183,180,177,191,196,187,183,196,170,164, 196,167,192,178,176,169,182,196,170,180,169,184,182,185, 183,177,185,179,175,176,180,183,188,188,175,172,180,170, 185,172,165,183,175,185,160,188,186,171,178,182,185,188, 194,180,165,161,180,185,188,178,176,178,175,192,171,190, 171,169,60,66,68,70,60,69,84,55,63,85,59,63,93,62,130, 69,72,78,74,70,92,55,60,76,55,59,63,65,67,82,75,74,65, 55,80,78,68,62,75,80,57,70,59,65,-1,-1,70,70,155,74,54, 83,83,90,68,78,73,70,75,74,73,83,85,70,71,90,60,75,107, 96,65,71,73,75,73,62,75,88,92,58,60,73,78,78,62,68,86, 71,80,65,72,50,73,77,53,81,62,55,75,100,60,51,86,55,81, 63,67,79,50,57,76,70,60,69,95,52,79,65,78,75,72,75,55, 55,79,79,75,72,57,65,64,73,80,85,78,60,80,67,66,67,75, 84,130,52,80,80,49,76,82,60,52,67,54,63,54,55,91,93,76, 83,78,74,64,58,51,55,80,58,55,63,82,75,64,56,75,71,81, 74,56,55,65,72,87,53,72,80,61,75,67,70,73,91,75,56,76, 62,88,87,75,75,85,95,75,80,76,70,52,95,48,90,80,69,68, 60,88,75,72,62,76,79,75,77,85,77,69,70,65,78,73,86,74, 60,77,65,65,80,62,54,63,65,69,60,86,80,58,60,81,62,82, 82,74,53,57,77,75,77,63,80,61,75,78,65,83,60,70,41,41, 41,40,38,41,46,49,41,46,39,39,48,39,50,43,44,42,43,43, 45,40,40,43,42,39,42,42,43,44,43,42,42,38,43,45,39,39, 43,41,39,41,39,42,-1,-1,42,42,49,43,39,45,44,45,39,43, 44,42,45,42,42,44,41,42,44,45,41,-1,48,46,42,42,43,45, 43,43,43,46,43,40,41,43,44,44,42,41,44,42,42,43,43,38, 43,44,37,45,39,38,43,46,41,38,43,39,46,40,39,44,37,39, 43,43,38,43,44,37,44,42,43,45,42,44,42,37,43,44,45,42, 38,41,41,44,44,40,44,42,43,42,44,40,43,44,46,37,44,45, 38,45,44,40,38,42,40,41,37,39,46,46,43,46,43,44,41,38, 37,39,43,39,39,43,45,-1,43,38,38,42,45,43,40,38,38,43, 45,38,42,43,42,43,42,-1,-1,44,42,39,46,43,45,45,43,43, 45,49,45,45,46,42,36,45,36,45,42,42,42,42,45,42,42,40, 44,41,43,45,45,45,43,43,42,43,42,44,46,42,42,41,39,42, 40,39,42,41,45,37,43,45,40,43,45,44,46,45,43,38,37,43, 43,42,39,43,43,43,43,41,44,-1,39,1,1,1,1,1,4,1,2,1, 1,4,0,3,2,1,1,6,1,2,1,0,0,1,1,0,0,2,1,2,1,0,0,2, 3,0,1,1,1,0,1,0,1,1,1,1,2,2,1,1,1,3,4,3,1,2,2,3, 0,1,1,2,2,0,2,3,7,3,1,1,1,2,3,1,1,1,3,0,1,1,0,2, 0,3,1,1,1,0,1,1,4,1,3,1,3,1,1,5,3,3,2,1,1,2,1,2, 1,1,3,2,2,-1,0,0,1,1,1,1,1,0,1,4,2,2,0,1,0,1,3,1, 1,1,3,0,1,1,1,1,1,3,2,2,0,2,3,1,1,1,1,0,1,1,1,3, 0,0,3,4,1,1,2,0,0,5,3,1,2,2,1,0,3,1,1,2,1,0,1,1, 1,1,2,2,2,1,3,1,0,1,1,0,1,4,0,1,0,1,1,1,4,1,4,2, 1,1,1,1,2,1,1,0,1,1,5,2,0,2,5,2,1,3,1,1,4,4,1,0, 3,1,1,1,1,1,1,1,3,0,1,2,3,0,1,0,1,1,3,0,0,3,2,0, 1,1,4,4,2,0,1,3,3,2,0,1,2,2,0,1,2,2,2,1,1,1,1,1, 1,2,5,1,1,1,2,1,1,1,2,2,1,1,1,1,1,1,1,2,1,1,1,1, 1,2,1,3,1,2,1,1,1,2,1,1,-1,-1,3,2,1,1,3,1,3,2,2, 3,1,1,1,1,3,2,1,3,1,8,3,1,3,2,3,3,2,1,2,1,1,1,2, 1,2,1,1,1,2,1,1,1,2,5,2,4,1,3,1,1,6,4,3,2,2,2,1, 1,3,1,1,1,3,3,-1,1,1,2,1,2,1,2,1,1,4,2,3,1,1,1,2, 3,2,2,1,2,1,1,1,2,1,1,1,1,1,1,2,4,1,2,1,2,2,2,2, 2,1,1,1,2,4,2,1,1,1,1,5,4,2,3,1,2,1,2,2,1,1,1,1, 2,1,1,1,1,3,1,1,1,2,1,1,2,1,1,1,1,1,1,2,2,1,5,2, 1,2,1,1,1,1,1,2,1,1,1,1,3,3,1,3,5,3,1,3,1,2,5,4, 2,1,3,1,2,1,1,1,1,2,1,1,1,1,1,1,2,1,2,2,1,1,1,1, 3,1,2,2,3,4,1,1,2,2,4,1,1,2,1,2,1,2,0,0,0,0,0,0, 0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0, 1,0,1,1,0,0,1,0,1,0,0,0,0,1,0,1,0,0,0,1,1,1,1,1, 1,0,1,1,1,1,0,0,1,0,1,1,0,0,0,0,1,0,0,1,0,0,1,0, 0,0,0,1,1,0,0,0,0,0,1,0,1,1,0,0,1,1,1,0,0,0,0,0, 0,1,0,1,0,1,0,1,0,1,0,1,1,0,0,1,1,0,0,0,0,1,1,1, 1,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0, 1,1,0,1,1,0,1,0,0,0,0,1,1,0,0,0,1,1,1,1,1,1,0,0, 0,1,1,0,1,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,0, 1,1,1,0,0,0,1,0,1,0,1,1,0,0,0,1,0,1,1,1,1,1,1,1, 1,1,0,1,0,0,0,0,0,1,1,1,0,1,0,0,1,1,0,0,1,0,0,0, 1,0,0,0,1,1,1,0,1,1,0,0,0,0,0,0,1,1,0,1,0,0,0,0, 0,1,0,1,0,0,0,1,0,1,0,1,1,0,0,0,1,0,1,1,0,0,0,1, 0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,1,1,0,0,0,0, 0,1,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,0,1,0,0,0,0,0, 1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,0,1,0,1, 1,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0, 1,0,1,1,1,1,1,1,1,0,0,0,1,1,1,1,0,0,0,1,0,0,1,1, 0,0,1,0,0,0,0,0,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,1, 1,0,0,1,0,0,0,1,0,1,0,0,1,0,0,1,0,0,1,1,1,0,1,1, 1,1,0,1,1,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,0,0,1, 0,1,0,1,0,0,1,0,1,1,0,1,0,0,0,0,1,0,0,1,0,0,0,1, 0,0,0,0,0,1,1,1,0,0,1,0,1,1,1,0,1,0,0,0,2,1,3,2, 2,2,2,1,2,2,2,4,1,1,2,2,1,1,2,2,1,1,2,1,1,3,1,3, 1,1,1,2,4,1,1,2,2,1,1,1,2,1,3,1,4,4,2,2,1,1,2,2, 1,1,2,1,1,1,1,3,5,2,1,2,1,2,4,1,1,1,3,3,3,2,2,4, 1,2,1,2,2,1,1,1,1,2,1,4,1,1,2,4,1,1,1,2,2,3,1,2, 1,1,2,2,1,1,1,4,1,4,2,1,2,2,2,4,4,2,1,1,2,1,1,1, 2,2,1,1,1,2,2,2,2,1,2,2,2,2,1,1,1,3,3,1,2,1,2,1, 3,1,1,1,1,1,1,2,2,2,1,1,1,2,1,4,2,2,2,2,1,2,3,2, 2,1,1,1,1,2,1,2,1,2,1,1,1,1,2,4,1,4,2,1,2,1,1,1, 2,2,2,2,1,1,1,1,1,2,4,1,1,1,2,1,2,2,1,1,1,1,1,4, 1,2,1,3,1,1,4,1,1,2,1,1,1,2,2,1,2,2,1,1,2,2,1,1, 1,1,1,2,2,2,1,1,1,1,1,1,4,2,1,1,1,2,1,1,1,1,1,1, 0,1,0,0,1,1,1,0,1,0,0,0,-1,0,1,0,0,1,0,1,1,1,0,0, 0,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,0, 0,1,1,0,1,1,0,1,0,1,0,1,0,1,0,0,1,1,1,0,0,1,0,0, 0,1,0,1,1,0,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,0,0,1, 1,1,0,0,0,0,1,1,1,1,0,0,1,1,1,0,1,1,1,1,1,1,0,1, 1,1,0,1,1,1,0,1,1,1,1,0,0,0,0,1,0,1,1,1,0,0,1,1, 1,1,0,1,1,0,1,1,0,0,1,1,0,1,1,1,0,0,0,0,0,1,0,0, 0,1,1,1,0,1,1,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1,1,1, 1,0,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,1,0,0,1,1,1, 0,1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,0,0,1,1,0,0,1, 1,0,1,0,1,0,0,1,1,0,0,1,1,0,0,1,0,1,0,1,1,1,100, 25,100,42,40,5,100,0,40,40,0,40,60,15,45,999,30,35,60, -1 ,150,90,15,120,80,20,0,10,78,38,93,100,38,0,5,35,35, 20,0,700,3,20,20,0,8,0,0,10,60,50,20,30,45,10,6,200, -1 ,2,50,90,60,60,700,20,70,86,42,120,80,50,40,55,300,170, 0,0,50,40,200,50,0,60,270,4,40,120,120,150,70,15,80,0, 10,0,30,20,30,3,300,50,10,15,8,10,60,15,30,50,20,15,0, 40,110,10,150,100,50,70,60,50,123,50,40,40,50,200,60, 100,20,40,40,34,40,200,25,30,25,3,90,70,10,130,130,8, -1,20,10,130,50,30,100,140,55,60,50,150,160,40,50,50,70, 30,40,3,30,20,50,40,80,30,20,143,200,35,20,40,50,40,50, 32,40,50,270,0,30,100,30,25,25,200,200,150,50,25,80,65, 30,150,80,300,50,200,60,30,150,100,10,8,20,100,60,150, 30,200,40,0,93,0,60,40,65,12,13,70,50,250,220,45,500, 80,150,30,130,160,100,80,30,30,20,150,75,70,100,30,120, 450,30,20,50,100,50,0,20,170,150,25,50,15,112,45,350,0, 40,60,40,6.8499999999999996,8.5999999999999996,10, 2.3399999999999999,3.1499999999999999,7.8300000000000001, 7.4299999999999997,0,22,4.4000000000000004,3.2400000000000002, 8.5600000000000005,9.0600000000000005,20,6.2699999999999996, 8.2300000000000004,9.0999999999999996,5.9500000000000002,10,10,2, 21.300000000000001,13.41,22.710000000000001,9.0800000000000001, 7.8300000000000001,2.0499999999999998,4,3.2200000000000002,3.23, 6.2999999999999998,14.720000000000001,5.8700000000000001,21,1.05, 9.5,6,-1,-1,8.4000000000000004,9.0399999999999991,2,-1, 0.050000000000000003,-1,-1,2,21.16,25.66,20,2, 5.7000000000000002,4.5,8.8000000000000007,7.2599999999999998, 0.10000000000000001,9.75,9.2200000000000006,52,7.2999999999999998, -1 ,20,8.9100000000000001,9.7300000000000004,4.8200000000000003, 8.6199999999999992,3,6.0999999999999996,10.609999999999999,13.42, 1.5700000000000001,4.2800000000000002,7.0599999999999996,20, 6.4000000000000004,5,4.2999999999999998,7.3499999999999996,7,10,2, 10,9,4.5,5.5999999999999996,5.4100000000000001,4.7599999999999998, 3.5,12.5,3.4300000000000002,7.1399999999999997,6, 6.0800000000000001,3,2.9500000000000002,20,1.6000000000000001,-1, 2.8999999999999999,7.5,7.71,7,6.5,4.2999999999999998, 6.0199999999999996,8.9000000000000004,12,10.09,4.0499999999999998, 5,-1,7.1200000000000001,7.5999999999999996,9.6500000000000004,7, 0.46000000000000002,8.5800000000000001,21.539999999999999,8.75,9, 3.8300000000000001,7.0800000000000001,8.3499999999999996,12.73, 11.43,6.3499999999999996,4.7999999999999998,6.96,-1, 8.1799999999999997,4.6500000000000004,15,18,2,3.7999999999999998, 7,1,4,7.0599999999999996,7,7.96,4.3799999999999999, 7.4800000000000004,5,8.2200000000000006,5.2000000000000002,10,2.5, 7,9.1999999999999993,13,0.45000000000000001,0,5,10,15.74,19.43, 12,7,20,10,20,1,7.6200000000000001,9,12,0.5, 5.5499999999999998,4.4699999999999998,14,12.5,9.5999999999999996, 13,5,6.5,22.32,17,3.3700000000000001,20,0.59999999999999998,15, 11.199999999999999,8.5500000000000007,5.3499999999999996,16.75, 7.7400000000000002,6.2000000000000002,2.7599999999999998, 3.3999999999999999,10,3.1000000000000001,0.90000000000000002, 0.94999999999999996,5,5.4000000000000004,4.7400000000000002,3.5, 3.25,8.3499999999999996,14.800000000000001,8,14,6, 4.2000000000000002,2.5,13.449999999999999,4.5,5,5, 12.640000000000001,5.0999999999999996,10.5,6,4.9000000000000004,4, 0.10000000000000001,1.8,0,10.300000000000001,6,8.7200000000000006, 7.7000000000000002,15,7,9,11.99,0.33000000000000002,19,7,13.73, 7,25,7,4.5,6.7400000000000002,16.829999999999998,7, 4.6799999999999997,4.6900000000000004,5,13,2.6200000000000001,0.01, 15,11.960000000000001,2,20,6,3.1299999999999999,12,9,9, 10.300000000000001,9.4000000000000004,7.5,5,3,27,20,5, 7.3300000000000001,15,6.4199999999999999,5.3799999999999999, 5.2999999999999998,2,1,2,2,3,1,2,1,3,2,2,2,1,1,2,1,2, 2,3,1,1,3,1,1,2,4,1,3,2,2,2,2,2,2,3,3,3,3,2,1,5, 3,2,2,2,2,3,2,2,1,3,2,3,1,2,2,5,4,1,2,2,1,2,2,2, 2,2,1,2,2,1,3,2,3,2,5,2,4,1,2,2,1,1,2,2,4,2,3,2, 2,1,1,2,3,2,2,2,4,5,1,1,3,3,2,3,3,3,1,2,3,3,1,2, 1,2,5,3,2,3,1,2,1,1,2,2,2,1,1,4,3,2,3,2,2,3,2,2, 1,1,1,3,2,2,2,2,1,3,2,2,3,2,2,3,2,3,1,3,2,3,3,2, 5,2,2,2,2,2,4,3,3,1,2,1,3,3,5,1,1,3,2,1,1,1,3,3, 1,3,1,3,2,3,2,3,2,2,3,2,1,1,2,1,2,1,1,1,1,2,2,1, 3,2,2,3,2,3,1,3,1,2,2,2,1,2,1,4,4,2,2,5,2,5,1,2, 4,3,2,2,3,1,1,2,3,3,2,2,2,3,4,2,2,2,1,1,2,1,5,2, 1,2,2,1,1,1,4,2,1,0,1,0,0,1,1,0,1,0,0,0,1,1,0,-1, 0,1,0,0,1,0,0,0,1,0,1,1,0,0,0,1,1,0,0,0,0,0,1,0, 1,0,0,0,1,1,1,1,1,1,0,0,0,1,0,1,0,0,1,1,1,0,1,1, 0,0,0,0,0,0,0,0,1,0,1,1,0,1,1,0,0,1,0,0,1,0,0,0, 0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,1,0,0,1,0,0,0,0,0, 0,1,0,0,1,1,1,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,0,1, 1,1,0,0,1,1,0,0,1,0,0,0,1,0,1,1,0,0,0,0,1,1,1,1, 0,1,1,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,1,0,0,1,0,0, 1,1,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,0, 0,0,1,1,0,0,1,0,1,0,0,0,1,0,0,1,0,1,0,0,0,1,0,0, 0,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,1,1, 0,1,1,0,1,0,0,0,1,2,2,4,1.3,3,-1,1,4, 3.2999999999999998,3,3,3.2999999999999998,2,2,1,-1,3,2.5,5, -1,5,4,3,4,3,4,5,1,1,4,4.2999999999999998, 3.2999999999999998,2,4,-1,3,4,3.2999999999999998,5,5,1.3,3,1, 2,1,-1,-1,3,4,4,1.7,3,3,1,4,4,3,5,2,2,3,2, 3.2999999999999998,2,3,2.2999999999999998,4,5,2,3,1,3,3,6,3, -1,-1,4,1,2.7000000000000002,2,4,-1,2,3,-1,3,3,3,4,1, 2.7000000000000002,3,3,3,2,3,1.7,4,4,2,1.3, 2.2000000000000002,1,4,3,1.7,3,4,3,3,4.2999999999999998,3,3, 4,3,3,4,3,4.7000000000000002,4,-1,4,3,2,5,2,-1, 3.2999999999999998,2,3.7000000000000002,2.7000000000000002,-1,4,3, 1,1.7,4,4,3,1.3,4,2,6,2.2999999999999998,3,4,3,-1, 3.7000000000000002,3,4,3,3,-1,3,4,2,3,3,2.7000000000000002, 2.2999999999999998,2,3,3,-1,3,1.3,2.7000000000000002, 2.2999999999999998,1.3,2.2999999999999998,2.2999999999999998,1.7,3, 2,5,4,-1,-1,3,1,-1,1,1,2,1,3,-1,1.5,-1,2, 3.7000000000000002,3,3.2999999999999998,4,2,-1,3,4,3,4,-1,2, 2,3,3,-1,3,3,4,3.7000000000000002,6,1,2,4.7000000000000002, 2.2999999999999998,-1,-1,6,4,1.3,5,2.7000000000000002,1.3, 3.2999999999999998,4,-1,4,-1,3,4,3,3,1.7,5,3,2, 3.7000000000000002,3.2999999999999998,1.7,2,3,3,1,3, 4.2999999999999998,4,2.2999999999999998,3,4,2.2999999999999998,3, 2.7000000000000002,2.7000000000000002,1.3,2.7000000000000002, 3.7000000000000002,4,3,5,3,3,5,3,2.1000000000000001, 2.2000000000000002,2.8999999999999999,2.7000000000000002, 2.6000000000000001,2.8999999999999999,1.3,3.3999999999999999,2,3, 3.2999999999999998,2,1.8999999999999999,2.7000000000000002, 2.2999999999999998,-1,2.7999999999999998,2.5,3.1000000000000001, 3.2999999999999998,3,2,2.8999999999999999,3,2.6000000000000001, 2.2000000000000002,3.6000000000000001,1.3,2.6000000000000001, 3.2999999999999998,3.2000000000000002,2.5,2.3999999999999999, 3.3999999999999999,3.3999999999999999,2,2.7000000000000002, 2.1000000000000001,3.5,2.5,1.5,2.8999999999999999,1.5,3,-1,-1, -1 ,2.6000000000000001,3,3.7999999999999998,2.7000000000000002, 2.2000000000000002,3,1.5,3,2.5,3,3.1000000000000001, 2.7999999999999998,2.6000000000000001,3.2000000000000002, 2.2000000000000002,3.2999999999999998,1.3,2.8999999999999999, 3.6000000000000001,3.3999999999999999,3.6000000000000001,3, 2.7000000000000002,1.2,2.5,3,3,3.1000000000000001,-1,3.5, 2.2000000000000002,3,3.2999999999999998,-1,3.2000000000000002,3, 2.6000000000000001,2.5,3.2000000000000002,3.3999999999999999, 2.2999999999999998,3.1000000000000001,2.8999999999999999,1.3, 2.7999999999999998,2.7999999999999998,2.7000000000000002, 2.7000000000000002,1.8999999999999999,2.6000000000000001, 1.6000000000000001,3.5,2.8999999999999999,3,1.8,2.3999999999999999, 1.8,2,2.8999999999999999,2.2000000000000002,2.6000000000000001, 2.8999999999999999,2.8999999999999999,3.2000000000000002, 3.7000000000000002,2.1000000000000001,3,3.3999999999999999, 3.7000000000000002,3.5,3.6000000000000001,2.2999999999999998, 2.7999999999999998,3,3.5,3.3999999999999999,3.2000000000000002, 2.2999999999999998,3.2999999999999998,3.2999999999999998,3, 2.6000000000000001,2.5,2.7999999999999998,2.7000000000000002, 2.7999999999999998,3.2000000000000002,3,1.3,2.6000000000000001, 3.3999999999999999,2.5,3.7000000000000002,1.7,3.2999999999999998, 3.3999999999999999,2.8999999999999999,2.5,2.7999999999999998, 2.1000000000000001,2.5,2.2999999999999998,2.7000000000000002, 3.1000000000000001,3.2999999999999998,2.1000000000000001, 2.8999999999999999,1.6000000000000001,3,3.5,2.3999999999999999,2.5, 2.8999999999999999,2.7000000000000002,1.8,1.7,2.7999999999999998,3, 2.2000000000000002,3.1000000000000001,1.6000000000000001, 3.2999999999999998,2.1000000000000001,1.8999999999999999, 2.6000000000000001,2.7000000000000002,3.2999999999999998, 2.7000000000000002,2.2999999999999998,3.2000000000000002,4, 2.8999999999999999,2.7000000000000002,2.7999999999999998,1.7, 3.3999999999999999,1.3,2,2.2999999999999998,1.6000000000000001,3, 2.7999999999999998,1.2,3.6000000000000001,2,3.2000000000000002, 2.7000000000000002,2.7000000000000002,2.2999999999999998,3, 2.2000000000000002,2.7000000000000002,3.1000000000000001, 2.8999999999999999,3.2999999999999998,2.2000000000000002,2, 2.2999999999999998,2.2000000000000002,3.2999999999999998, 2.1000000000000001,3,3,3,3.2999999999999998,3.2999999999999998, 1.8999999999999999,2.7999999999999998,3.2999999999999998, 3.3999999999999999,2.5,3.2000000000000002,2.7999999999999998, 2.7000000000000002,3,3.5,3.2000000000000002,2.2999999999999998,3, 3.6000000000000001,3.3999999999999999,2.8999999999999999, 2.6000000000000001,3.5,3.5,3.2000000000000002,3.6000000000000001,2, 3.6000000000000001,2.7999999999999998,1.8999999999999999, 2.1000000000000001,3.1000000000000001,2.2000000000000002,2, 3.3999999999999999,3.1000000000000001,2.7999999999999998, 2.6000000000000001,3.2000000000000002,2.7999999999999998,2.5, 2.7000000000000002,2.2999999999999998,3.2999999999999998,3, 3.2999999999999998,2.7999999999999998,3.2999999999999998, 2.7000000000000002,3.2000000000000002,2.7999999999999998, 3.2999999999999998,2.6000000000000001,2.8999999999999999, 3.2999999999999998,3.2999999999999998,3.2999999999999998,1,0,0,0, 0,1,1,0,1,0,0,1,1,1,1,-1,1,1,1,1,1,1,0,1,1,0,0,1, 1,0,0,0,1,0,0,1,0,1,0,1,1,0,0,1,1,1,0,1,1,0,0,0, 1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,1,0,1,0,0,0, 0,1,0,1,1,0,1,0,0,1,1,0,1,1,0,0,1,0,1,0,1,1,1,0, 0,1,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,0,1,0,1,0,0,1, 1,1,1,1,1,1,1,0,0,1,0,1,0,0,1,1,0,1,1,0,1,1,0,1, 0,0,1,1,0,0,1,1,1,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0, 1,1,0,0,0,0,0,0,1,1,1,0,1,1,1,0,0,0,1,1,1,0,0,1, 1,1,1,1,0,1,1,1,1,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0, 1,0,1,0,1,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0, 0,1,1,0,0,0,0,1,0,0,1,1,0,1,0,1,0,1,1,1,0,0,0,0, 0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,-1,1,0,0,1,1, 1,0,0,0,1,0,0,1,0,0,1,0,0,0,1,1,0,0,0,-1,1,1,0,0, 0,-1,-1,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0, 1,0,0,1,0,0,0,1,1,1,1,1,1,0,-1,1,0,0,0,0,1,0,0,0, 0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,1,1,0,0,1,0,1,0,0, 1,0,1,1,0,0,-1,-1,0,1,0,1,0,0,0,0,1,0,0,0,0,1,-1, 0,-1,0,1,1,0,0,0,0,0,0,0,1,-1,0,-1,1,1,0,1,0,0,0, 1,0,1,-1,1,-1,-1,1,1,0,-1,0,0,1,1,0,0,1,0,0,0,0,0, -1,0,0,-1,0,0,1,1,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0, 0,1,1,-1,0,0,0,1,1,0,1,0,0,1,0,1,0,1,1,1,0,0,0,0, 0,0,1,1,-1,0,1,1,0,-1,1,0,0,-1,1,0,0,0,0,1,0,1,0, 1,1,0,0,1,2,5,3,-1,1,3,1,1,1,2,3,2,3,2,1,-1,1,1, 1,1,-1,2,2,2,4,1,5,3,2,3,2,2,2,2,2,1,1,1,1,3,3,2, 4,2,1,-1,2,2,3,1,2,-1,-1,2,1,3,1,1,1,5,1,2,2,2,3, 2,3,1,2,3,4,2,2,2,3,1,4,2,3,-1,1,2,2,3,2,1,1,-1, 1,1,2,1,3,1,1,2,1,2,2,3,2,1,2,1,2,4,3,5,1,4,1,2, 1,1,2,1,2,2,1,1,2,1,2,3,3,1,1,-1,-1,2,2,2,3,2,1, 2,1,1,3,2,2,1,2,-1,2,2,2,3,2,1,3,1,2,3,1,1,2,-1, 2,-1,4,2,2,3,1,1,3,2,5,2,3,1,-1,-1,2,3,1,-1,2,2,2, 2,1,4,3,3,1,2,2,2,-1,1,1,-1,2,2,1,3,2,3,3,1,1,1, 2,2,2,2,2,2,3,1,1,1,3,1,-1,1,1,2,2,2,1,1,2,3,3,1, 2,1,1,2,3,2,3,1,3,2,3,1,2,-1,2,1,3,1,-1,3,2,1,-1, 2,1,2,3,5,1,1,3,2,1,1,4,1,1,4,3,4,8,1,8,1,6,-1,8, 1,8,7,2,4,1,4,1,8,1,8,1,2,2,6,1,4,8,3,8,1,7,8,7, 7,8,8,1,1,8,8,3,2,8,8,8,1,2,2,7,7,7,2,8,1,8,4,8, 8,4,8,8,8,2,1,6,2,1,4,8,8,7,1,1,-1,1,2,1,-1,7,7, 4,1,3,2,3,1,2,4,3,8,1,7,7,7,2,3,1,2,7,1,2,7,1,1, 4,3,4,1,4,1,8,3,3,2,8,4,1,7,4,8,8,4,4,1,4,2,8,8, 1,1,8,2,7,3,8,8,1,8,3,4,4,2,2,1,8,1,8,1,7,7,2,1, 4,1,7,7,1,1,4,4,7,-1,1,2,1,8,2,8,8,1,8,8,8,2,1,4, 1,8,8,3,1,8,1,1,4,1,1,1,3,1,8,-1,3,3,4,2,8,3,1,1, 8,8,1,1,1,1,1,2,1,8,2,2,2,2,2,8,4,7,3,2,3,1,1,7, 2,7,4,1,1,8,8,3,3,1,2,2,4,2,2,8,3,1,2,1,2,3,4,7, 8,4,4,8,4,4,2,7,7,4,1,7,7,4,4),.Dim = c(265,23), .Dimnames = list(c("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","29","30","31","32","33","34", "35","36","37","38","39","40","41","42","43","44","45","46", "47","48","49","50","51","52","53","54","55","56","57","58", "59","60","61","62","63","64","65","66","67","68","69","70", "71","72","73","74","75","76","77","78","79","80","81","82", "83","84","85","86","87","88","89","90","91","92","93","94", "95","96","97","98","99","100","101","102","103","104","105", "106","107","108","109","110","111","112","113","114","115", "116","117","118","119","120","121","122","123","124","125", "126","127","128","129","130","131","132","133","134","135", "136","137","138","139","140","141","142","143","144","145", "146","147","148","149","150","151","152","153","154","155", "156","157","158","159","160","161","162","163","164","165", "166","167","168","169","170","171","172","173","174","175", "176","177","178","179","180","181","182","183","184","185", "186","187","188","189","190","191","192","193","194","195", "196","197","198","199","200","201","202","203","204","205", "206","207","208","209","210","211","212","213","214","215", "216","217","218","219","220","221","222","223","224","225", "226","227","228","229","230","231","232","233","234","235", "236","237","238","239","240","241","242","243","244","245", "246","247","248","249","250","251","252","253","254","255", "256","257","258","259","260","261","262","263","264","265"), c("1:lfd.Nr","2:Fach","3:Geschlecht","4:Alter","5:Groesse", "6:Gewicht","7:Schuhgroesse","8:Geschwister","9:?te Kind", "10:Rauchen","11:bei Eltern","12:Art->Uni","13:Autobesitz","14:#CD", "15:Bargeld","16:Coca-Cola","17:Mathe.LKurs","18:Abi.Mathe.Note", "19:Abi.Note","20:Bi gewuenscht","21:Film","22:Film-Urteil", "23:Partei")),class = "matrix") #:262 #263: frabo97<- structure(.Data = c(2,2,1,2,1,1,2,2,2,1,2,2,2,1,1,2,1,1,2,2, 1,2,2,2,1,2,2,2,1,1,2,2,2,1,1,2,2,2,2,2,2,2,2,2, 1,1,2,1,1,1,1,1,1,2,2,2,1,1,2,1,2,2,2,2,2,1,1,2, 2,2,1,2,2,2,2,2,1,2,2,1,1,1,2,1,1,1,2,1,1,2,2,2, 2,1,2,1,2,2,2,1,2,2,2,1,2,2,2,2,2,2,2,2,1,1,2,1, 2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,1,2,1,2,2,2,2,1,1, 2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,1,1,1,2,2,1,1, 1,1,2,2,2,2,2,1,2,2,2,2,2,1,1,2,1,1,1,2,2,1,1,2, 2,2,2,2,2,2,2,188,185,176,182,135,170,172,175,183,167, 173,174,175,160,167,180,170,170,186,175,173,180,179,187, 165,181,186,165,179,161,180,182,183,173,182,187,180,180, 176,181,180,185,183,180,165,164,178,170,165,172,171,167, 175,185,207,193,165,165,185,172,183,185,188,180,186,180, 168,176,180,176,180,168,191,194,185,172,165,182,170,173, 163,169,181,161,164,178,178,160,165,186,187,182,178,160, 181,174,195,182,191,170,184,190,184,163,175,188,185,180, 175,175,178,186,159,165,170,162,175,190,188,184,180,170, 170,154,170,180,180,174,171,181,180,163,178,160,175,180, 184,0,169,170,168,182,180,176,177,175,170,183,195,190,182, 190,163,187,188,183,178,160,175,169,184,178,172,175,164, 175,182,180,184,185,185,170,193,176,197,183,182,171,168, 183,167,170,178,175,174,170,168,188,188,180,183,171,180, 175,183,68,75,63,85,47,63,70,85,98,50,71,67,63,56,56, 75,53,52,76,70,59,100,56,86,46,79,83,50,70,48,100,69, 65.5,60,70,80,72,70,68,73,73,83,70,78,57,66,72,57,54, 61,60,56,57,75,118,80,54,50,72,70,77,72,90,73,75,75,52, 70,85,67,70,52,94,79,87,75,60,67,69,69,62,53,75,53,56, 53,60,60,58,82,98,70,74,57,74,65,90,78,73,0,83,80,77, 49,65,83,80,70,65,75,65,74,55,53,76,49,80,75,65,78,63, 60,65,74,62,57,66,68,80,72,76,49,76,55,73,78,75,0,57, 63,60,72,78,67,71,70,65,78,73,85,68,79,45,95,83,65,65, 53,58,70,70,70,58,68,50,67,65,68,85,85,85,70,78,75,110, 94,70,60,56,76,57,60,70,80,65,64,53,55,90,58,72,69,67, 60,90,20,22,26,21,21,21,29,22,21,22,22,22,23,19,25,31, 20,19,20,20,19,32,29,20,19,21,21,19,22,21,24,21,20,19, 19,20,22,20,20,20,21,22,23,25,22,19,20,23,20,19,20,19, 20,19,21,21,20,19,20,22,25,24,24,21,22,22,22,22,21,20, 20,22,20,27,26,22,35,21,25,20,21,20,22,20,19,26,20,22, 19,21,22,23,23,30,21,22,22,22,29,20,21,22,20,20,20,21, 21,20,22,21,22,21,19,20,23,23,24,20,20,24,20,19,22,23, 20,20,20,19,20,23,26,19,21,26,28,23,20,20,21,19,20,22, 20,21,21,21,19,22,20,20,21,20,21,27,20,20,21,20,20,20, 21,22,21,19,21,21,20,21,21,30,21,20,22,24,21,24,21,22, 20,26,23,19,19,20,20,21,21,21,21,21,21,21,20,22,19,2, 3,3,3,2,2,1,1,1,2,2,5,2,2,3,3,2,2,3,2,3,3,3,4,3, 3,3,1,3,2,2,3,2,3,3,2,2,2,2,3,2,3,2,2,2,3,1,3,2, 2,2,3,2,5,3,2,2,3,3,5,3,1,3,3,3,3,4,3,1,2,2,1,2, 2,3,3,3,3,2,3,3,3,3,2,3,3,2,3,3,4,3,2,2,2,2,2,3, 2,5,3,3,2,5,2,5,2,3,2,2,3,3,2,2,2,1,3,2,3,2,2,2, 2,3,3,1,1,1,2,3,3,2,2,2,3,1,2,3,3,3,2,2,3,3,3,3, 2,3,2,5,3,2,3,2,2,2,2,2,3,2,4,3,3,2,2,2,2,2,5,2, 2,3,5,2,2,2,3,2,2,3,3,2,3,2,1,1,3,2,3,1,2,2,1,3, 2,2,2,5,80,5,50,50,10,7,15,40,25,2,3,20,30,3,35,40, 6,25,40,43,6,8,50,0.20000000000000001,2,15,30,20,8,4,3, 25,25,15,4,5,2,7,5,10,5,13,50,40,8,30,50,20,70,15,50, 1,0.69999999999999996,5,65,12,25,40,4,8,5,2,10,10,40,8,8, 20,40,8,5,3,1,5,25,5,12,25,20,20,7,60,60,20,2,22,30, 8,15,10,6,50,1,20,5,0.59999999999999998,5,25,8,0.5,2,30, 4,10,1,4,5,4,12,10,40,6,10,40,5,8,5,7,8,20,7,5,5,7, 4,7,10,6,4,40,4,30,4,4,6,3,20,35,5,4,1.3999999999999999, 5,3,10,20,7,3.5,10,10,8,25,10,5,7,15,64,25,50,3, 0.59999999999999998,20,20,15,30,40,15,10,8,15,10,7,5,12,8, 0.29999999999999999,4,20,5,20,22,40,5,5,10,30,10,3,8,10, 7,12,19,10,42,43,40,41,38,39,42,42,45,37,42,42,42,38, 39,45,38,37,43,42,41,43,42,47,38,44,45,40,39,38,43,44, 43,40,41,44,43,45,43,44,43,43,43,42,39,39,43,39,37,40, 40,38,39,43,49,45,39,38,44,39,43,43,44,43,46,43,39,42, 43,43,40,41,45,46,45,40,39,44,42,40,38,37,45,39,38,39, 38,39,38,45,46,42,43,36,42,40,47,42,42,39,46,45,44.5, 37,42,43,43,46,42,42,43,44,38,38,41,37,44,46,44,43,43, 41,41,44,42,42,42,42.5,42,42,45,38,43,37,42,43,45,42, 38,39,40,43,46,41,45,44,42,44,47,43,42,45,39,46,45,42, 42,37,40,40,43,42,40,42,38,42,45,42,44,44,46,40,44,43, 48,45,43,40,38,43,37,39,40,43,41,40,39,43,45,40,41,41, 42,42,43,0,0,2,0,0,0,1,0,0,1,1,1,2,0,0,2,1,0,0,0, 1,0,1,2,0,1,1,2,0,1,0,3,1,2,0,0,1,0,1,0,1,3,1,1, 1,0,2,0,0,0,0,1,2,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1, 1,1,0,2,0,1,0,1,1,0,1,1,1,1,2,0,1,0,0,0,0,0,0,0, 0,0,0,2,0,1,1,1,1,1,1,0,0,3,1,0,1,0,2,0,1,1,2,1, 2,1,0,1,1,2,0,0,1,6,1,0,1,1,1,1,1,1,2,0,1,0,1,1, 0,1,1,1,1,1,0,1,1,1,0,0,1,1,1,0,1,1,0,1,0,0,0,1, 0,2,1,3,0,1,0,1,1,0,0,0,0,1,1,1,3,0,0,1,0,1,0,1, 3,0,2,1,0,0,1,1,1,1,1,2,5,2,3,0,1,0,0,0,0,1,1,0, 0,0,2,1,0,0,0,0,0,0,1,0,1,0,0,0,3,2,0,0,1,1,0,2, 1,1,0,0,1,0,1,1,0,0,0,0,1,1,0,1,0,0,0,1,1,1,1,0, 0,1,0,1,0,1,0,1,0,3,0,1,2,1,1,1,0,0,3,1,1,1,1,1, 2,0,1,0,0,2,3,1,1,1,0,0,0,1,0,1,0,1,0,1,0,2,1,5, 1,2,0,0,0,0,0,2,0,1,1,1,1,0,1,0,2,0,0,0,0,1,0,0, 1,0,1,1,0,1,0,0,3,2,0,1,0,0,1,1,0,0,1,1,0,0,0,0, 1,1,0,1,1,0,0,1,0,0,0,0,0,1,1,2,2,0,0,1,1,0,1,2, 2,1,0,1,1,0,3,0,1,0,17,7,3,4,0,28,8,23,9,7,8,5,1, 3,7,13,16,5,24,7,7,2,12,7,7,0,3,25,3,12,0,5,5,7,0, 5,0,25,0,7,66,6,7,17,5,13,23,492,6,14,7,21,13,6,9,7, 2,2,0,0,17,47,21,0,5,13,6,0,6,11,8,6,7, 3.1699999999999999,90,28,7,7,99,14,5,18,9,9,8,13,20,5,3, 56,15,69,71,10,8,7,22,5,0,0,15,2604,6,28,0,8,9,13,0, 24,7,13,2,777,0,0,13,15,7,16,5,318,3,0,2,31,3,7,0,4, 4,7,1,7,11,0,16,3,7,13,0,13,666,13,1,1,0,13,23,9,7, 2,7,7,0,9,16,22,1,16,7,21,13,7,17,0,0, 3.1739999999999999,7,0,21,25,7,8,0,32,24,0,22,7,22,7,29, 8,0,0,15,2,13,0,20,17,8,17,13,2,2,2,1,2,1,1,2,2,2, 1,2,2,2,2,1,2,2,2,2,2,2,1,2,2,2,1,2,2,1,2,2,1,2, 2,2,2,2,2,2,1,2,2,1,2,2,1,1,1,2,2,2,2,1,2,2,2,2, 2,2,1,1,2,2,1,1,2,2,2,2,2,2,1,1,1,1,1,1,2,1,2,2, 1,2,2,2,2,1,1,2,1,1,1,1,2,1,2,1,1,1,1,1,2,1,1,1, 2,1,2,1,2,2,2,2,1,1,2,1,2,1,2,1,2,2,2,2,2,1,1,2, 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,1,1, 2,2,2,2,2,1,2,2,2,2,2,2,2,1,2,1,2,1,2,1,1,2,2,2, 1,1,1,2,2,1,1,1,1,2,1,2,2,1,1,1,2,500,600,105,400, 0,0,600,6800,5,24,4000,30,200,70,603,2000,500,100,450,80, 480,170,1500,10,2300,600,200,600,30,0,2000,3000,2000,4000, 0,80,10,3,10,5,10,2500,15,0.10000000000000001,0,1600,2000, 600,800,4050,2000,12,7,2500,1700,31,420,1600,1600,0,1200, 30,200,65,3000,25,3500,6,90,100,35,400,0,3,50,20,200,20, 10,50,800,200,18,4000,4000,10,1400,2200,120,20000,500,30, 28,60,100,800,25,38,4000,0,50,2200,24,2.6000000000000001, 1500,280,20,250,0,100,80,40,2500,30,3000,7000,300,36,20, 18,1000,800,0,0.14999999999999999,800,23,2000,80,180,25,0, 4500,18,10,30,15,0,30,0,1900,500,20,300,5,800,2000,100, 2,210,20,2000,2000,3000,2500,30,80,350,5000,700,25,100,9, 1200,1000,12,1000,2500,3500,6,45,2000,30,0,3200,900,200, 50,6000,5000,3000,30,25,50,2000,3000,15,8500,800,30,150,0, 60,13,30,20,3,3,7,4,0,1,3,3,0,4.5,3,3,3,2,1,1,5,5, 5,3,3,0,0,4,4,4,5,3,0,6,0,3,2,2,0,4,5,5,5,5,0,5, 5,3,3,4,5,3,0,0,4,5,5,4,4,3,5,1,4,3,3,5,3,4,3,3, 0,0,2,0,0,1,0,0,0,0,0,6,4,4,3,3,2,3,3,4,3,0,3,5, 4,6,4,0,0,3,3,3,4,2,0,4,5.5,5,4,5,4,5,2,0,0,0,4, 1,0,0,0,0,4,4,0,5,5,4,0,3,4,3,4,2,0,4,1,0,0,0,6, 6,6,0,4,3,3,3,0,0,5,0,2,0,7,4,4,0,3,0,0,6,4,5,3, 0,0,2.5,0,0,2,0,2,0,5,7,0,5,8,5,5,5,5,0,0,0,0,3, 4,0,3,4,0,0,4,0,5,4,0,1,1,1,1,2,1,1,1,2,2,1,1,1, 1,2,2,2,1,1,1,1,2,2,1,1,2,2,2,1,2,2,1,1,1,2,2,2, 1,2,2,2,2,1,2,1,1,2,2,2,1,1,2,2,1,2,2,1,2,2,2,1, 1,1,1,1,1,2,1,1,1,1,1,2,2,2,1,2,1,1,2,2,1,1,2,2, 2,1,2,1,1,1,2,1,2,2,2,2,2,2,1,1,2,2,2,1,1,2,1,2, 1,2,1,2,1,2,2,1,1,1,2,1,1,2,1,2,2,1,2,2,1,0,1,2, 1,1,1,1,1,2,1,2,1,2,1,1,2,2,1,2,2,2,1,2,1,1,1,2, 1,1,2,2,1,2,1,1,2,1,2,2,2,1,2,1,1,1,1,2,1,2,2,2, 1,1,2,2,1,1,1,2,2,1,1,1,2,1,1,1,1,1,1,2,1,1,1,1, 1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,2,2,1,2,1,1,1,1, 2,1,1,1,1,1,1,1,1,2,2,1,1,1,2,1,1,2,2,1,1,1,2,2, 1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,2,1,1,2,1,2,2,2,2, 1,2,1,1,1,2,1,1,2,1,1,2,2,2,2,2,2,1,1,1,2,1,1,1, 2,1,2,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,2,2,1,1,1,1, 1,1,1,1,2,2,1,1,2,2,1,1,2,1,1,2,1,1,1,2,2,1,1,1, 1,1,2,2,2,1,1,1,1,2,1,2,1,1,1,1,1,2,1,1,2,2,1,1, 1,1,1,1,2,2,1,1,2,1,1,2,1,2,1,1,1,39,12,78,26,25, 15,100,15,50,38,60,25,15,17,20,22,26,20,12,0,40,70,66, 20,58,26,21,40,40,48,70,40,110,35,60,15,20,35,36,48,40, 12,9,65,12,18,25,55,20,100,25,25,25,30,18,18,20,30,50, 54,120,50,25,60,20,20,43,20,30,8,30,20,23,100,50,20,60, 30,35,20,63,25,25,20,20,27,100,20,20,50,15,19,18,120, 22,35,52,21,80,25,10,45,21.390000000000001,24,30,30,23,30, 25,50,18,17,19,26,50,60,40,40,40,48,20,20,35,12,35,20, 15,21,25,78,80,15,30,50,65,50,0,30,0,30,25,7,22,95, 120,20,20,30,23,20,32,24,40,60,24,20,64,40,15,40,30,60, 68,30,60,21,30,29,34,60,45,15,14,35,14,35,22,15,28,54, 25,30,30,25,54,32,94,70,25,20,25,90,20,90,40,60,35,30, 40,30,25,25,15,50,50,20,18,60,95,25,10,15,30,13,25,30, 25,20,90,7,20,30,30,45,10,30,15,20,20,5,5,20,8,25,10, 120,25,40,40,20,30,5,15,25,25,30,20,15,39,3,7,10,17, 15,20,50,50,45,45,20,10,25,30,30,56,30,20,8,40,20,90, 20,10,25,15,35,45,5,10,10,5,30,40,25,22,100,35,20,20, 30,50,15,30,5,20,90,10,35,10,50,10,10,60,20,45,5,35, 10,55,10,60,30,30,20,15,20,3,15,40,20,45,20,35,40,10, 45,75,20,20,50,90,20,40,25,30,25,50,25,40,35,20,15,60, 34,15,5,30,15,95,50,60,95,60,20,20,30,60,90,100,90,40, 45,10,18,10,20,40,26,4,45,30,6,50,10,90,45,40,45,10, 10,120,30,45,20,30,20,18.5,25,2,20,100,40,86,54,80,3, 300,12,50,80,40,20,30,40,40,50,30,30,20,180,25,190,30, 32,50,300,160,40,80,50,350,20,25,10,30,50,40,150,40,50, 15,3,30,70,5,20,50,100,20,10,120,35,15,233,450,220,20, 30,35,15,20,200,250,10,90,15,160,40,30,500,15,15,91,300, 50,150,25,50,50,30,30,130,160,0,6,15,40,40,20,120,50, 100,68,100,20,100,25,50,40,30,60,100,152,40,25,150,40, 20,0,40,30,25,0,35,0,40,0,150,50,200,50,120,80,300,10, 20,200,10,30,70,60,15,20,150,90,40,40,0,50,10,60,40, 180,100,63,0,50,30,20,35,30,50,10,100,30,100,55,25,4, 40,30,150,20,20,25,50,280,8,20,100,100,30,0,60,81,50, 20,20,20,10,100,30,10,12,30,60,30,20,20,0,1,1,100,100, 60,80,180,200,300,0,30,150,80,300,150,20,10,60,30,40,30, 150,150,400,0,200,0,800,20,100,100,50,5,400,200,40,150, 30,30,0,100,30,80,25,100,30,12,80,10,30,100,21,100,100, 30,500,40,50,63,70,30,70,50,40,45,15,350,220,50,300,25, 120,100,60,60,40,40,0,300,50,500,200,100,25,20,200,300, 50,30,0,40,50,180,25,200,20,20,120,3000,20,400,50,50,30, 50,100,152,130,328,100,50,30,120,20,40,50,30,20,40,0, 100,80,50,20,100,20,200,30,150,10,100,50,100,20,10,1500, 40,100,50,250,60,10,0,0,70,80,60,120,150,300,0,300,20, 100,20,60,100,30,60,80,75,600,200,20,300,200,50,30,100, 60,20,50,50,70,50,400,120,100,200,2,50,50,200,50,30,50, 100,50,6,25,20,100,15,5,30,0,100,50,100,80,1,2,1,1,2, 1,2,1,1,2,1,1,1,1,2,1,2,1,2,2,2,1,2,1,1,1,2,2,2, 2,1,1,2,2,2,1,1,1,1,1,2,2,2,1,2,1,2,1,2,2,2,2,1, 1,2,1,2,1,2,1,1,1,1,2,1,2,2,2,2,2,2,1,1,1,1,2,1, 1,1,1,1,1,1,2,1,1,1,2,2,1,2,1,1,1,2,1,2,2,2,2,1, 1,2,2,2,1,2,2,2,1,2,1,2,1,2,1,1,2,1,1,1,1,1,1,2, 2,1,2,1,1,1,1,1,1,1,2,2,2,2,1,2,2,1,1,1,2,1,1,2, 1,1,1,2,2,2,1,1,2,2,1,2,1,1,2,2,2,2,2,1,1,1,2,1, 1,1,1,2,1,2,2,2,2,1,1,1,1,1,1,2,1,1,2,1,1,1,5,5, 2,1,0,5,5,5,2,2,2,10,10,5,1,5,1,2,5,2,5,5,6,5,5, 5,5,5,5,5,2,5,5,5,2,5,5,2,2,1,5,2,10,2,2,2,2,5,2, 5,5,2,1,5,2,5,11,5,5,2,5,11,5,2,10,2,11,9,5,5,5,5, 2,5,11,2,11,2,2,9,5,2,2,2,5,11,4,2,2,9,11,5,7,2,5, 5,4,4,5,5,3,2,5,5,5,3,2,9,9,1,2,2,5,5,5,2,2,5,5, 5,5,5,2,4,10,1,5,2,3,5,0,9,3,5,5,10,5,7,2,5,1,5, 2,10,5,5,5,2,2,5,4,5,5,2,10,10,6,2,5,1,11,1,2,9,2, 1,6,4,7,6,1,5,5,5,5,5,5,5,4,2,8,1,2,2,2,2,10,5,9, 2,1,5,5,1,5,1,1,1,1,1,1,2,1,1,1,1,1,1,2,3,2,1,1, 1,2,1,1,4,1,1,1,1,1,2,1,1,2,2,2,1,1,1,1,2,1,1,1, 1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,2,1, 1,2,2,1,1,1,1,2,1,1,2,1,1,1,1,2,1,1,1,2,1,1,1,2, 1,1,1,2,1,1,1,1,2,1,1,1,1,1,2,2,1,1,1,1,1,1,1,2, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2, 1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1, 1,2,1,1,2,2,1,1,1,1,1,1,1,2,1,1,1,1,2,1,2,1,1,1, 1,1,1,1,1,1,1,1,2,1.8,2.7000000000000002,2, 3.4000000000000004,0,3,3.2000000000000002,3,2,1, 3.3000000000000003,2.8000000000000003,2,3,2,3,1.7000000000000002, 3,2,3.1000000000000001,1,3,1.6000000000000001,3.1000000000000001, 2.8000000000000003,3.9000000000000004,3,2.6000000000000001,1.5, 2.6000000000000001,3,3,3,2.3000000000000003,2.7000000000000002, 3.2000000000000002,3,3,3.3000000000000003,2.7000000000000002, 2.7000000000000002,2.3000000000000003,2.2000000000000002, 3.3000000000000003,2.4000000000000004,2.7000000000000002,3,3,3,2, 2,2,2.1000000000000001,2.9000000000000004,2.6000000000000001, 2.6000000000000001,2,1.9000000000000001,2.6000000000000001, 2.8000000000000003,2,1,2,2.8000000000000003,3,3,1.8,3,3,2,2, 2.5,3,1.4000000000000001,1.6000000000000001,3,2.8000000000000003, 2.9000000000000004,2.3000000000000003,2.9000000000000004,2,2,3.5, 2.7999999999999998,3.2000000000000002,2,3,2.2999999999999998, 2.8999999999999999,1.7,3.5,3,2.7000000000000002,3, 3.3999999999999999,1,1,1,3,3.3999999999999999,3,2, 3.2999999999999998,2.6000000000000001,2.8999999999999999, 2.7000000000000002,2.8999999999999999,3,2,3,3,3, 2.7999999999999998,1.8999999999999999,3.2000000000000002,3, 2.7999999999999998,2.8999999999999999,3,3,3,2.7000000000000002,3, 2,3,2.8999999999999999,2.1000000000000001,3,3.2000000000000002,2, 3,2,1.8999999999999999,3.3999999999999999,3,3,2.7000000000000002, 0,3.7000000000000002,2.8999999999999999,2.6000000000000001,2, 3.2000000000000002,3,2.7999999999999998,3.1000000000000001,2,3,3, 1.8999999999999999,2,2.1000000000000001,2.7999999999999998,3, 2.1000000000000001,2.3999999999999999,3,2.1000000000000001,1.3,3, 1.8,1.3999999999999999,2,2.5,1,2.8999999999999999,1.8, 3.2999999999999998,2.2999999999999998,2,1,2.8999999999999999, 2.7999999999999998,3,3.2000000000000002,2,2,2.5,2.5, 2.8999999999999999,2,1.8,2,3.1000000000000001,3.3999999999999999, 3.1000000000000001,3,2,3,3.5,2,2.6000000000000001,2,0, 3.3999999999999999,3,3,4,5,3,3,3,2,1,2,3,2,2,4,3,3,2, 4,2,2,1,4,2,2,2,2,3,3,1,3,2,2,3,3,2,3,3,3,5,3,4, 9,2,3,2,4,6,3,4,3,2,1,1,3,3,3,2,2,12,2,1,2,2,5,3, 4,2,1,3,3,3,3,3,1,1,3,4,2,2,11,4,2,3,3,3,2,4,1,2, 2,3,3,4,3,3,1,2,3,0,3,4,4,4,1,3,4,4,3,3,2,4,2,2, 1.7,4,4,3,4,3,3,3,2,5,2,3,2,1,3,4,3,4,1,2,1,2,2, 2,0,4,2,3,2,3,3,2,3,2,3,4,1,4,1.7,2,4,3,3,2,2,1, 2,1.7,1,3,3.1000000000000001,1,3,1,2,2,2,1,3,2,4,4,3,1, 4,1.7,3,3,2,2,2,4,4,2,2,4,4,2,2,3,0,3,3,4,1,4,4, 3,4,4,4,4,4,4,4,4,3,4,4,4,2,3,4,4,3,4,4,4,3,3,3, 3,4,4,5,4,4,2,4,4,4,3,5,3,4,4,3,3,1,4,3,4,3,4,4, 4,1,4,1,4,4,4,0,4,4,4,4,4,3,3,3,3,3,4,4,4,4,3,4, 4,5,1,4,4,4,3,3,1,4,3,3,4,5,3,3,4,2,4,3,3,3,3,4, 4,3,4,3,1,1,4,3,4,1,4,1,4,3,5,3,4,4,1,4,4,1,4,3, 3,4,3,3,4,4,5,4,4,3,3,3,3,3,3,3,3,1,3,3,3,4,4,3, 4,2,4,3,5,3,3,5,4,4,4,3,5,3,5,5,3,3,3,4,5,4,1,4, 4,4,4,3,4,4,5,5,4,4,4,4,5,4,4,4,4,4,4,4,1,4,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,2,1,1,1,1,1, 1,2,1,1,1,1,1,1,1,2,2,1,2,1,2,2,1,1,1,2,2,1,2,1, 1,2,2,1,2,1,2,2,1,2,1,1,1,1,1,1,1,1,1,2,1,1,2,1, 1,1,1,1,1,1,1,2,1,2,2,1,1,1,2,2,2,2,2,1,2,1,2,2, 1,1,1,2,2,1,1,2,2,1,1,2,2,1,2,2,2,1,1,2,1,1,1,1, 2,1,2,1,1,2,2,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,1,1, 2,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,2,1,2,1,1,2,1, 1,2,2,1,1,2,1,1,2,1,1,1,1,2,1,2,1,1,2,2,1,1,1,1, 1,650,350,800,390,1000,1000,500,400,400,1000,500,900,1000, 560,900,1000,800,400,300,700,500,0,2000,300,700,1200,400, 700,500,700,2000,1000,500,400,500,1100,1000,900,1500,1000, 800,700,400,1000,800,400,1000,1000,500,100,200,1100,1100, 600,600,1000,100,1000,850,800,1500,1200,500,300,1000,1000, 1700,100,500,100,500,500,1200,1000,2000,1000,2000,700,1500, 800,800,300,300,1000,1000,600,700,860,400,400,1000,1500, 500,2000,1000,600,1000,1000,1200,1000,1000,25,1000,1100,400, 800,1000,500,1000,1500,1000,400,1000,250,2000,1500,1000,300, 600,850,500,300,900,1000,1300,900,500,900,1000,600,600, 1000,700,1000,1000,400,400,1200,1000,500,700,300,800,500, 100,900,1500,800,900,1500,650,650,500,600,300,200,0,200, 300,1000,1000,400,700,500,500,1000,1500,1100,1400,1400,500, 800,500,1000,800,800,1000,800,800,1500,700,250,200,1600, 1000,500,200,500,2000,1000,600,1500,600,1300,500,32,38,32, 30,30,20,25,20,40,30,50,30,30,20,30,35,30,30,40,20,30, 50,25,30,30,25,30,20,40,17,35,28,30,30,0,33,35,35,35, 35,30,37,37,28,35,40,45,35,12,12,40,35,40,25,30,35,25, 22,30,35,20,40,35,30,30,40,40,30,28,30,15,28,25,20,30, 35,30,20,25,25,25,25,25,40,35,55,35,10,40,45,26,40,30, 30,20,40,39,39,0,25,25,50,40,5,20,50,40,35,12,40,50, 35,30,30,30,40,30,20,25,40,25,30,15,35,20,50,30,30,40, 30,56,50,30,25,40,25,35,25,0,35,50,0,40,30,30,40,0,25, 50,30,30,35,30,50,25,40,15,30,25,35,40,50,0,22,50,40, 50,25,40,30,40,32,30,50,30,40,30,30,28,25,30,25,25,30, 40,30,45,0,30,0,42,40,37,8,35,0,3,8,3,20,20,2,7,0, 20,8,15,0,0,0,10,10,12,8,6,6,14,20,3,10,0,6,10,8,10, 2,15,8,7,0,0,5,8,15,8,8,0,5,10,0,0,11,15,4,7,10,0, 0,5,0,0,30,6,0,10,15,4,0,0,3.5,10,0,0,0,10,7,12,0, 15,30,12.5,30,4,25,10,25,0,0,10,15,8,10,6,20,20,10,20, 20,0,0,10,9,8,0,5,16,0,12,8,0,10,0,2,16,0,10,0,10, 8,30,0,0,20,12,12,10,18,0,8,4,0,12,8,0,0,1,4,0,3, 16,3,0,0,0,14,0,0,6,0,0,3,0,0,0,10,10,0,8,4,2,0,0, 11,0,10,0,3,0,0,0,10,0,10,0,21,15,8,0,0,25,10,10, 3.5,4,20,10,4,6,15,16,0,20,20,0,0,10,12,0,10,4,4,2, 6,12,0,16,5,10,6,5,10,10,7,10,4,2,10,10,6,3,1,0,10, 15,5,10,20,14,5,20,10,8,20,3,0,10,0,4,5,5,5,4,3,15, 5,5,12,14,4,4,6,10,5,4,10,15,6,3,3,8,10,8,10,1,0,5, 0,10,30,0,10,20,20,6,5,3,3,15,15,5,3,1,15,5,10,2,3, 2,10,20,2,3,2,10,0,14,8,8,5,7.5,10,50,32,28,10,4,10, 2,7,6,7,10,10,8,30,10,20,8,15,10,14,2,12,10,12,5,6, 2,15,10,1,6,10,10,16,7,7,0,0,5,5,20,10,10,10,12,1.5, 2,10,10,5,10,7,10,10,9,10,1,10,2,3,10,5,5,10,0,0,40, 4,3,5,10,8,20,0,5,10,10,10,15,5,3,4,20,20,6,2,20,20, 10,7,10,4,10,10,3599,60,60,2000,4000,4000,4000,4000,60,0, 5000,0,3500,0,0,3000,3000,3000,2,3,3000,0,6,4,2500,2500, 3,60,0,0,4,3000,2000,70,0,4.5,4,3,300,4,25,60,40,60,0, 20,8000,36,36,0,1500,30,100,60,55,25,1500,2500,80,3800,4, 38,80,20,3500,4,4300,2500,60,0,0,4000,8000,8,70,0,70, 1000,60,5,3000,50,50000,4000,0,70,40,5000,20,60000,30,60, 3,30,5000,4,70,75,5000,4,2500,80,60000,60,0,2.5,4,60,0, 2000,4,4,5,30,10000,6000,5000,0,50,60000,50,0,0,80,5000, 50,5000,5000,60,70,12,4000,4,5,5,4,5000,0,0,4000,4000,5, 1.5,3000,3500,5000,70,1,4,5000,60,6100,3000,3000,4,4000,0, 0,5000,3000,5000,70000,3000,5000,4000,50000,127000,72000, 4500,70,60,60,80,3500,0,75,72,70000,65,3500,20,3000,3000, 3.5,4000,0,60000,60000,30,25,70,800,4,2000,3500,10,10,10, 11,14,14,10,10,13,12,13,10,10,10,10,10,9,10,10,10,11, 0,8,9,11,10,10,10,9,12,9,8,10,8,8,10,10,10,10,11,9, 11,9,11,9,9,10,12,10,10,10,9,8,9,10,12,10,10,11,11, 10,9,10,8,8,10,9,12,12,9,5,10,9,9,9,12,10,10,10,12, 8,8,10,13,11,10,10,10,10,8,10,10,12,12,12,8,8,8,10, 10,9,8,10,10,12,10,10,9,9,10,10,10,10,10,10,10,10,12, 12,10,11,10,10,10,8,8,10,9,10,10,8,10,10,10,12,11,10, 8,13,9,11,9,9,10,15,10,8,10,10,10,9,10,10,8,12,11,0, 10,9,11,9,12,10,10,10,10,16,10,9,12,9,11,9,20,9,9,9, 8,9,11,12,10,9,8,14,10,9,10,12,12,10,8,8,4,9,620,45, 45,0,0,99,45,720,720,0,0,0,175,0,0,500,480,480,480,700, 60,0,600,480,35,600,600,720,600,50,12,600,50,600,0,480, 480,0,500,500,40,20,500,600,0,600,738,607,500,605,660, 615,600,612,600,625,600,660,500,4085,622,650,600,430,24, 500,64,660,600,480,60,600,0,700,1200,0,720,20,550,500, 500,56,52,744,550,200,400,55,0,660,63,600,500,600,600, 540,660,660,0,0,150,650,720,720,999,550,650,600,0,90,50, 630,60,600,0,600,50,48,480,630,500,636,630,48,50,0,50, 45,600,480,100,600,600,480,550,480,650,0,0,0,50,44,720, 500,600,800,0,50,500,600,540,50,600,600,36,10,45,0,600, 300,60,60,0,1,1,540,700,610,620,666,60,45,674,648,0,600, 600,480,587,650,3679,580,540,600,0,600,0,0,360,0,0,600, 480,0,720,9,3,7,5,0,5,1,4,1,3,6,0,5,9,9,5,5,1,3,7, 9,9,3,5,5,5,2,7,3,0,5,5,1,6,9,9,7,2,5,9,7,9,1,7, 1,3,1,5,8,9,1,1,2,1,1,1,1,9,3,7,6,6,9,2,3,1,4,7, 2,3,7,5,8,8,4,1,3,9,7,1,1,7,1,7,7,6,1,2,3,2,3,1, 8,7,5,3,2,1,5,1,3,2,9,9,5,1,1,3,0,1,5,5,9,5,0,1, 7,5,1,9,1,9,2,7,7,8,5,3,1,1,6,9,1,7,3,9,5,0,9,9, 9,5,1,1,1,5,9,1,5,7,9,2,5,3,9,1,6,5,5,3,2,7,1,8, 1,1,0,2,2,3,1,7,1,8,9,5,3,3,9,5,9,5,5,5,9,5,5,2, 5,7,1,5,1,0,3),.Dim = c(195,34),.Dimnames = list(character(0), c("1:Geschlecht","2:Groesse","3:Gewicht","4:Alter","5:Haarfarbe", "6:Haarlaenge","7:Schuhgroesse","8:Brueder","9:Schwestern", "10:Glueckszahl","11:Rauchen","12:Urlaubs-km","13:Feten-Stunden", "14:Eltern-Wohnung","15:PC-Zugriff","16:Wohnflaeche", "17:Weg-Minuten","18:CDs","19:Buecher","20:Auto","21:Zeitung", "22:Studiengang","23:Abi-Note","24:Mathe-Note","25:Verkehrsmittel", "26:Wunschort","27:Ausgaben","28:Studierzeit","29:Verdienzeit", "30:TV-Zeit","31:Anfangsgehalt","32:Studiendauer","33:Dekansalter", "34:Partei"))) #:263 #264: s165<-0.01*c( 172,51,66,414,292,14,97,157,10,441,9,467,168,193,27,311,179,87,154,11, 282,771,133,351,1313,323,428,432,133,129,468,97,213,441,539,452,48,22,115,103, 390,142,26,76,199,386,87,120,432,311,364,107,360,12,411,55,16,313,46,186, 423,157,106,460,817,259,215,38,4,162,258,51,805,201,598,178,97,34,63,44, 126,10,39,542,77,27,214,119,202,174,,105,315,23,459,228,238,347,170,174,84) s166<-c(40,37,41,40,43,37,38,40,42,43,39,40,39,40,42,38, 41,41,39,38,42,40,41,39,37,40,41,40,39,40,41,42) #:264 #265: init.revbook<-function(){ options(digits=5) assign("Menu",Menu,frame=1) } #:265 #266: open.revbook<-function(){ # h<-unix("if [ -f revbookreport.rev ] ; then \n echo 'hallo' \n fi ") # if(length(h)>0){ # cat("Es existiert bereits eine Reportdatei.\n") # cat("Soll diese geloescht werden ? (j=Datei loeschen)\n") # if("j"==readline()) unix("rm revbookreport.rev",,F) # } h<-find("open.revbook") h<-substring(h,1,nchar(h)-5) if(exists("win.graph")){ revive7(paste(h,"revbook",sep="") ,editor="edit" ) } else { revive7(paste(h,"revbook",sep="") ,editor="vuepad" ) } } open.lotto<-function(){ # h<-unix("if [ -f revbookreport.rev ] ; then \n echo 'hallo' \n fi ") # if(length(h)>0){ # cat("Es existiert bereits eine Reportdatei.\n") # cat("Soll diese geloescht werden ? (j=Datei loeschen)\n") # if("j"==readline()) unix("rm revbookreport.rev",,F) # } h<-find("open.revbook") h<-substring(h,1,nchar(h)-5) if(exists("win.graph")){ revive7(paste(h,"lotto",sep="") ,editor="edit" ) } else { revive7(paste(h,"lotto",sep="") ,editor="vuepad" ) } } #:266 #267: show.revbook<-function(){ cat("Funktion zur Anzeige des revbook mit ghostview\n") cat(" Bitte haben Sie ein wenig Geduld!\n") h<-find("open.revbook") h<-substring(h,1,nchar(h)-5) gv<-unix("which ghostview") h<-paste(gv," ",h,"revbook.ps&",sep="") unix(h,,F) print("ghostview wird mit q beendet!") invisible() } show.lotto<-function(){ cat("Funktion zur Anzeige des Lotto-Papiers mit ghostview\n") cat(" Bitte haben Sie ein wenig Geduld!\n") h<-find("open.revbook") h<-substring(h,1,nchar(h)-5) gv<-unix("which ghostview") h<-paste(gv," ",h,"lotto.ps&",sep="") unix(h,,F) print("ghostview wird mit q beendet!") invisible() } #:267 #268: Menu<-function(auswahl, mess = "items:",la,title="",report=F ){ l.cat<- function(..., file = "", sep = " ", fill = F, labels = NULL, append = F) .Internal(cat(..., file, sep, fill, labels, append), "S_cat", T, 0) if(missing(la)) la<- letters[1:length(auswahl)] # ----- VORLAEUFIG ------ report<-F # ---- wegen der Sicherheit --------- if(report){ auswahl<-c(auswahl,"Reportbearbeitung/Plot kopieren") la<-c(la,"R") } mess <- c(mess, paste("\n", la, auswahl), "\nSelection: ") if(exists("sinkname.r")) sink() if(0revbook.report()","."),frame=w.frame.r) res<-1 } return(res) } #:268 #269: look.act.points.up<-function(key='cat("Revbook',trenn=":",end.skip=3){ #270: sch.r <-get("sch.r",frame=sys.parent()) act.def<-sch.r[zeilen<-(1:length(sch.r))[substring(sch.r,1,nchar(key))==key]] act.def<-substring(act.def,nchar(key)+2,nchar(act.def)-end.skip) #:270 #271: section.no<-substring(sch.r[zeilen-1],2,4) section.no<-ifelse( substring(section.no,3,3)==":", substring(section.no,1,2), section.no ) section.no<-ifelse( substring(section.no,2,2)==":", substring(section.no,1,1), section.no ) #:271 #272: act.text <-act.def act.names<-act.index<-rep(" ",length(act.def)) for(i in 1:length(act.def)){ h<-(1:nchar(act.def[i])) h<-h[substring(act.def[i],h,h)==trenn] if(length(h)==2){ act.index[i]<-substring(act.def[i],1,h[1]-1) act.text[i] <-substring(act.def[i],h[2]+1) act.names[i]<-substring(act.def[i],h[1]+1,h[2]-1) h<-1:nchar(act.names[i]) h<-substring(act.names[i],h,h) h<-paste(h[h!=" "],collapse="") if(nchar(h)>0) assign(h,section.no[i],frame=1) } } h<-max(nchar(act.names)) act.names<-paste(act.names, substring(" ",0,h-nchar(act.names)),sep="") #:272 #273: h<-cbind(act.names,act.text,act.index,section.no) return(h) #:273 } #:269 #274: activate.jump<-function(name.text.index.no){ key.text<-paste(name.text.index.no[,1],name.text.index.no[,2],sep=" ") h<-name.text.index.no[,3] ord<-order(substring(h,2)) section.no<-name.text.index.no[,4] h<-paste(rep(" ",nchar(name.text.index.no[1,1])),collapse="") wahl<-Menu(c(paste(h,"Abbruch",sep=" "),key.text[ord]))-1 if(wahl>0){ cmds<-paste("s",section.no[ord][wahl]) assign("cmds",cmds,frame=sys.parent()) } } #:274 #275: outin<-function(Text="leer",endtext="BITTE RETURN"){ if(!missing(Text)){cat(Text);cat("\n")} cat(endtext) cat("\n") h<-readline() h } #:275 #276: boxplotexp<-function(){ #277: x1<-10:30 x2<-rep(10:30,4) set.seed(15) x3<-rnorm(100,20,10) x4<-20+.5*x3 set.seed(15) x5<-rexp(100,1/20) x<-list("1"=x1,"2"=x2,"3"=x3,"4"=x4,"5"=x5) boxplot(x) #:277 #278: cat("Der Boxplot\n") cat("-----------\n") cat("Der Boxplot gibt dem Betrachter einen Eindruck von der Lage,\n") cat("der Variabilitaet, der Symmetrie und den Randbereichen eines\n") cat("Datensatzes. In dem jetzt sichtbaren Fenster sind die 5 Boxplots\n") cat("von 5 verschiedenen Datensaetzen dargestellt. Im\n") cat("mittleren Bereich ist deutlich eine Box mit einer horizontalen Linie\n") cat("zu erkennen. Diese Linie markiert den Median. Die \n") cat("auesseren Linien der Box stellen jeweils das untere resp. das obere\n") cat("Quartil dar. Der vom unteren bis zum oberen Quartil reichende Kasten\n") cat("symbolisiert die zentralen 50% der Daten.\n") cat("Die aus optischen Gruenden durch Querstriche begrenzten Linien oben\n") cat("und unten repraesentieren nochmals jeweils 25% der Daten; ihre Enden\n") cat("markieren die Extrempunkte des Datensatzes, min(x) und max(x).\n") #:278 #279: repeat{ cat("Zu welchem Datensatz der 5 angebotenen wollen Sie weitere Hinweise?\n") cat("Empfehlung: Zur ersten Orientierung bietet es sich an, \n") cat("zuerst alle nacheinander anzuschauen.\n") wunsch<-c(scan(,0,n=1),0)[1] if(wunsch==0)break if(wunsch==1){ cat("Zum Datensatz 1:\n") cat("Der erste Datensatz besteht aus den Zahlen\n") cat("10,11,...,30. Er ist symmetrisch, die Extrema sind 10 und 30, also\n") cat("ist der Median gerade 20. Dies kann unmittelbar am Plot abgelesen\n") cat("werden. Die Box wird durch 15 und 25 begrenzt, diese Punkte grenzen\n") cat("das untere Viertel bzw. das obere Viertel vom Rest ab. In diesem \n") cat("Fall ist 15 das untere Quartil, 25 das obere. Auch diese \n") cat("Informationen sind einfach aus dem Boxplot abzulesen\n") cat("{siehe Graphik}.\n") } if(wunsch==2){ cat("Zum Datensatz 2: \n") cat("Dieser Datensatz ist aus der viermaligen\n") cat("Wiederholung der Zahlen von 10 bis 30 (4xDatensatz 1) entstanden.\n") cat("Also hat auch er den Median 20. Da die anderen Statistiken\n") cat("ebenfalls mit dem ersten Datensatz uebereinstimmen, ergibt sich\n") cat("dasselbe Erscheinungsbild.\n") cat("Hinweis: vergleiche die Datensaetze!\n") cat("Ein Datensatz, den man durch VervielfÌltigung eines\n") cat("bereits vorhandenen Datensatzes erhaelt, hat weiterhin das gleiche\n") cat("Erscheinungsbild.\n") cat("Merke\n") cat("Der Stichprobenumfang hat keinen Einfluss auf den Boxplot.\n") } if(wunsch==3){ cat("Zum Datensatz 3:\n") cat("Dieser Datensatz vom Umfang 100 ist eine Stichprobe aus\n") cat("einer symmetrischen Grundgesamtheit mit Mittel 20 und Streuung 10.\n") cat("Es ergibt sich ein symmetrischer Boxplot. Die Extrema (-5.18,46.98)\n") cat("sind weiter vom Zentrum entfernt als bei Datensatz 1. Die Box ist\n") cat("etwas laenger, jedoch deckt sie nur ca. ein Drittel des \n") cat("Datenbereiches ab.\n") cat("Allgemein kann man also sagen, dass die Boxlaenge nichts darueber \n") cat("aussagt, wieviel die Box vom Datenbereich abdeckt. \n") cat("Man sagt zwar, dass die Box 50% der Daten enthaelt,\n") cat("aber das heisst nicht, dass die Box auch 50% des Datenbereichs\n") cat("abdeckt. Man sieht, dass die Daten selbst einen grossen Einfluss\n") cat("auf das Erscheinungsbild haben, denn die Extrema sind dafuer\n") cat("verantwortlich, dass die Box bloss ein Drittel des Datenbereichs\n") cat("abdeckt.\n") } if(wunsch==4){ cat("Zum Datensatz 4: Dieser Datensatz ist durch eine Stauchung (:2) und\n") cat("Verschiebung (+20) aus dem dritten Datensatz entstanden. Deshalb\n") cat("liegt der Median um 20 hoeher und die Spannweite wie\n") cat("auch die Boxgroesse haben sich halbiert.\n") cat("Merke:\n") cat("Addition einer Zahl z bewirkt eine Verschiebung des Boxplot\n") cat("nach oben (bei positiven Zahlen z) bzw.\n") cat("nach unten (bei negativen Zahlen z).\n") cat("Merke:\n") cat("Multiplikation mit einer Zahl z>1 bewirkt \n") cat("eine Streckung des Boxplots.\n") cat("Analog bewirkt die Division mit einer Zahl z\n") cat("eine Stauchung des Boxplots.\n") } if(wunsch==5){ cat("Zum Datensatz 5: Dieser Datensatz ist aus einer asymmetrischen \n") cat("Grundgesamtheit mit dem Mittel 20 gezogen worden. Der wesentliche\n") cat("Teil der Daten liegt im Bereich zwischen 0 und 30. Nur ca. 25%\n") cat("sind im Bereich (25,100) verteilt.\n") cat("Die Box erstreckt sich von 3.92 (unteres Quartil) bis 26.19\n") cat("(oberes Quartil), d.h., dass 50% der Daten zwischen\n") cat("3.92 und 26.19 liegen. Die Extrema sind 0.28 und 97.74.\n") cat("Wie man sieht gibt es auf der einen Seite viele Daten, die\n") cat("sehr dicht zusammenliegen, auf der anderen Seite gibt es aber auch \n") cat("sog. Ausreisser. Das sind Daten, die weiter entfernt\n") cat("vom Zentrum liegen. Die Ausreisser bewirken,\n") cat("dass der Datenbereich links und rechts von der Box, der jeweils\n") cat("25% der Daten enthaelt, unterschiedlich lang ist. Anhand der\n") cat("Lage der Querstriche kann man erkennen, ob und in welchem Bereich\n") cat("es Ausreisser gibt.\n") } } # end of repeat #:279 #280: cat("Sie koennen jetzt einen Datensatz zur genaueren Analyse aussuchen.\n") cat("Welchen Datensatz der 5 angebotenen waehlen Sie?\n") wunsch<-c(scan(,0,n=1),0)[1] if(wunsch==0) break switch(wunsch,x<-x1,x<-x2,x<-x3,x<-x4,x<-x5) x.all<-list("ODS"=x) #:280 #284: boxplot(x) stats<-boxplot(x,plot=F) par(usr=c(0,6,par()$usr[3:4])) text(1,max(x),"Maximum") text(1,stats$stats[2],"oberes Quartil") text(1,stats$stats[3],"Median") text(1,stats$stats[4],"unteres Quartil") text(1,min(x),"Minimum") text(5,min(x),as.character(min(x))) text(5,stats$stats[4],as.character(stats$stats[4])) text(5,stats$stats[3],as.character(stats$stats[3])) text(5,stats$stats[2],as.character(stats$stats[2])) text(5,max(x),as.character(max(x))) #:284 #287: boxplot(x) stats<-boxplot(x,plot=F) par(usr=c(0,6,par()$usr[3:4])) text(1,max(x),"Maximum") text(1,stats$stats[2],"oberes Quartil") text(1,stats$stats[3],"Median") text(1,stats$stats[4],"unteres Quartil") text(1,min(x),"Minimum") text(5,min(x),as.character(min(x))) text(5,stats$stats[4],as.character(stats$stats[4])) text(5,stats$stats[3],as.character(stats$stats[3])) text(5,stats$stats[2],as.character(stats$stats[2])) text(5,max(x),as.character(max(x))) #:287 repeat{ #281: cat("Sie koennen nun mit dem Datensatz operieren.\n") cat("Was wollen Sie\n") angebot<-c( "ENDE", "Datensatz anzeigen", "Zusammenfassende Statistiken berechnen", "Ausgangs-Datensatz um Konstante verschieben", "Ausgangs-Datensatz um Faktor strecken", "Ausgangs-Datensatz logarithmieren", "vorherigen Datensatz um Konstante verschieben", "vorherigen Datensatz um Faktor strecken", "vorherigen Datensatz logarithmieren", "Datensatz um weitere Daten ergaenzen", "Daten aus Datensatz entfernen", "neuen Datensatz eingeben", "Datensatz aus den 5 angebotenen aussuchen" ) wunsch<-menu(angebot) #:281 #282: switch(wunsch, { break },{ print(x.all) cat("Bitte return!\n") readline() },{ print(lapply(x.all,summary)) },{ cat("Um wieviel soll der Datensatz verschoben werden?\n") wunsch<-c(scan(,0,n=1),0)[1] h<-x+wunsch x.all<-c(x.all,list(h)) new.name<-paste("ODS +",wunsch) #283: names(x.all)<-c(names(x.all)[-length(x.all)],new.name) #:283 #286: names(x.all)<-c(names(x.all)[-length(x.all)],new.name) #:286 #285: boxplot(x.all) #par(mfrow=c(1,length(x.all))) #for(x in x.all) boxplot(x) #par(mfrow=c(1,1)) #:285 #288: boxplot(x.all) #par(mfrow=c(1,length(x.all))) #for(x in x.all) boxplot(x) #par(mfrow=c(1,1)) #:288 },{ cat("Um wieviel soll der Datensatz gestreckt werden?\n") wunsch<-c(scan(,0,n=1),0)[1] h<-x*wunsch x.all<-c(x.all,list(h)) new.name<-paste("ODS *",wunsch) #283: names(x.all)<-c(names(x.all)[-length(x.all)],new.name) #:283 #286: names(x.all)<-c(names(x.all)[-length(x.all)],new.name) #:286 #285: boxplot(x.all) #par(mfrow=c(1,length(x.all))) #for(x in x.all) boxplot(x) #par(mfrow=c(1,1)) #:285 #288: boxplot(x.all) #par(mfrow=c(1,length(x.all))) #for(x in x.all) boxplot(x) #par(mfrow=c(1,1)) #:288 },{ cat("Datensatz wird logarithmiert!\n") if(min(x)>0){ h<-log(x) new.name<-"log(ODS)" } else { h<-x new.name<-"ODS" cat("Datensatz konnte nicht logarithmiert werden!\n") } x.all<-c(x.all,list(h)) #283: names(x.all)<-c(names(x.all)[-length(x.all)],new.name) #:283 #286: names(x.all)<-c(names(x.all)[-length(x.all)],new.name) #:286 #285: boxplot(x.all) #par(mfrow=c(1,length(x.all))) #for(x in x.all) boxplot(x) #par(mfrow=c(1,1)) #:285 #288: boxplot(x.all) #par(mfrow=c(1,length(x.all))) #for(x in x.all) boxplot(x) #par(mfrow=c(1,1)) #:288 },{ cat("Um wieviel soll der vorherige Datensatz verschoben werden?\n") wunsch<-c(scan(,0,n=1),0)[1] h<-x.all[[length(x.all)]]+wunsch x.all<-c(x.all,list(h)) new.name<-paste("neuer DS +",wunsch) #283: names(x.all)<-c(names(x.all)[-length(x.all)],new.name) #:283 #286: names(x.all)<-c(names(x.all)[-length(x.all)],new.name) #:286 #285: boxplot(x.all) #par(mfrow=c(1,length(x.all))) #for(x in x.all) boxplot(x) #par(mfrow=c(1,1)) #:285 #288: boxplot(x.all) #par(mfrow=c(1,length(x.all))) #for(x in x.all) boxplot(x) #par(mfrow=c(1,1)) #:288 },{ cat("Um wieviel soll der vorherige Datensatz gestreckt werden?\n") wunsch<-c(scan(,0,n=1),0)[1] h<-x.all[[length(x.all)]]*wunsch x.all<-c(x.all,list(h)) new.name<-paste("neuer DS *",wunsch) #283: names(x.all)<-c(names(x.all)[-length(x.all)],new.name) #:283 #286: names(x.all)<-c(names(x.all)[-length(x.all)],new.name) #:286 #285: boxplot(x.all) #par(mfrow=c(1,length(x.all))) #for(x in x.all) boxplot(x) #par(mfrow=c(1,1)) #:285 #288: boxplot(x.all) #par(mfrow=c(1,length(x.all))) #for(x in x.all) boxplot(x) #par(mfrow=c(1,1)) #:288 },{ cat("vorheriger Datensatz wird logarithmiert!\n") h<-x.all[[length(x.all)]] if(min(h)>0){ h<-log(h) new.name<-"log(neuer DS)" }else { h<-h new.name<-"neuer DS" cat("vorheriger Datensatz konnte nicht logarithmiert werden!\n") } x.all<-c(x.all,list(h)) #283: names(x.all)<-c(names(x.all)[-length(x.all)],new.name) #:283 #286: names(x.all)<-c(names(x.all)[-length(x.all)],new.name) #:286 #285: boxplot(x.all) #par(mfrow=c(1,length(x.all))) #for(x in x.all) boxplot(x) #par(mfrow=c(1,1)) #:285 #288: boxplot(x.all) #par(mfrow=c(1,length(x.all))) #for(x in x.all) boxplot(x) #par(mfrow=c(1,1)) #:288 },{ cat("Geben Sie weitere Daten ein!\n") cat("Eine leere Eingabe beendet !\n") h<-c(x,scan(,0)) x.all<-c(x.all,list(h)) #285: boxplot(x.all) #par(mfrow=c(1,length(x.all))) #for(x in x.all) boxplot(x) #par(mfrow=c(1,1)) #:285 #288: boxplot(x.all) #par(mfrow=c(1,length(x.all))) #for(x in x.all) boxplot(x) #par(mfrow=c(1,1)) #:288 },{ cat("Hier ist der Datensatz!\n") print(rbind(Index=1:length(x),Daten=x)) cat("Geben Sie die Indizes der zu entfernenden Beobachtungen ein!\n") cat("Eine leere Eingabe beendet !\n") h<-x[-scan(,0)] x.all<-c(x.all,list(h)) #285: boxplot(x.all) #par(mfrow=c(1,length(x.all))) #for(x in x.all) boxplot(x) #par(mfrow=c(1,1)) #:285 #288: boxplot(x.all) #par(mfrow=c(1,length(x.all))) #for(x in x.all) boxplot(x) #par(mfrow=c(1,1)) #:288 },{ cat("Geben Sie die neuen Daten ein!\n") cat("Eine leere Eingabe beendet !\n") wunsch<-scan(,0) if(length(wunsch)>0) x<-wunsch x.all<-list(x) #284: boxplot(x) stats<-boxplot(x,plot=F) par(usr=c(0,6,par()$usr[3:4])) text(1,max(x),"Maximum") text(1,stats$stats[2],"oberes Quartil") text(1,stats$stats[3],"Median") text(1,stats$stats[4],"unteres Quartil") text(1,min(x),"Minimum") text(5,min(x),as.character(min(x))) text(5,stats$stats[4],as.character(stats$stats[4])) text(5,stats$stats[3],as.character(stats$stats[3])) text(5,stats$stats[2],as.character(stats$stats[2])) text(5,max(x),as.character(max(x))) #:284 #287: boxplot(x) stats<-boxplot(x,plot=F) par(usr=c(0,6,par()$usr[3:4])) text(1,max(x),"Maximum") text(1,stats$stats[2],"oberes Quartil") text(1,stats$stats[3],"Median") text(1,stats$stats[4],"unteres Quartil") text(1,min(x),"Minimum") text(5,min(x),as.character(min(x))) text(5,stats$stats[4],as.character(stats$stats[4])) text(5,stats$stats[3],as.character(stats$stats[3])) text(5,stats$stats[2],as.character(stats$stats[2])) text(5,max(x),as.character(max(x))) #:287 },{ #280: cat("Sie koennen jetzt einen Datensatz zur genaueren Analyse aussuchen.\n") cat("Welchen Datensatz der 5 angebotenen waehlen Sie?\n") wunsch<-c(scan(,0,n=1),0)[1] if(wunsch==0) break switch(wunsch,x<-x1,x<-x2,x<-x3,x<-x4,x<-x5) x.all<-list("ODS"=x) #:280 #284: boxplot(x) stats<-boxplot(x,plot=F) par(usr=c(0,6,par()$usr[3:4])) text(1,max(x),"Maximum") text(1,stats$stats[2],"oberes Quartil") text(1,stats$stats[3],"Median") text(1,stats$stats[4],"unteres Quartil") text(1,min(x),"Minimum") text(5,min(x),as.character(min(x))) text(5,stats$stats[4],as.character(stats$stats[4])) text(5,stats$stats[3],as.character(stats$stats[3])) text(5,stats$stats[2],as.character(stats$stats[2])) text(5,max(x),as.character(max(x))) #:284 #287: boxplot(x) stats<-boxplot(x,plot=F) par(usr=c(0,6,par()$usr[3:4])) text(1,max(x),"Maximum") text(1,stats$stats[2],"oberes Quartil") text(1,stats$stats[3],"Median") text(1,stats$stats[4],"unteres Quartil") text(1,min(x),"Minimum") text(5,min(x),as.character(min(x))) text(5,stats$stats[4],as.character(stats$stats[4])) text(5,stats$stats[3],as.character(stats$stats[3])) text(5,stats$stats[2],as.character(stats$stats[2])) text(5,max(x),as.character(max(x))) #:287 } ) #:282 } } #:276 #289: jitterplot<-function(x,xlim){ x<-unlist(x) set.seed(13) zz<-runif(length(x)) if(missing(xlim)) xlim<-range(pretty(x)) plot(x,zz,ylab="",xlim=xlim) } #:289 #290: stabdiagramm<-function(x,xlim){ if(missing(xlim)) xlim<-range(pretty(x)) counts<-table(x) werte<-as.numeric(names(counts)) plot(c(min(werte),max(werte)),c(0,max(counts)),xlim=xlim, type="n",xlab="x",ylab=paste("*1/",length(x),sep="")) segments(werte,0,werte,counts) } #:290 #291: balkendiagramm<-function(x,breaks){ breaks<-sort(breaks) if(max(x)>breaks[length(breaks)]) breaks<-c(breaks,max(x)) if(min(x)<=breaks[1]) breaks<-c(min(x)-0.001*(max(x)-min(x)),breaks) counts<-table(cut(x,breaks)) namen<-names(counts) for(i in 1:length(namen)){ h1<-nchar(namen[i]) h2<-(1:h1)[substring(namen[i],1:h1,1:h1)=="t"] namen[i]<-paste(substring(namen[i],1,h2-1),"..", substring(namen[i],h2+4,h1),collapse="") } oldpar<-par(mar=c(5.1,12.1,4.1,2.1)) barplot(counts,names=namen,horiz=T,xlab=paste("*1/",length(x),sep="")) par(oldpar) } #:291 #292: stem.and.leaf<-function(x){ stem(x) if(exists("r.flag.r")&exists("out.file")){ if(get("r.flag.r",frame=w.frame.r)&& get("out.file",frame=w.frame.r)!=F)print(stem(x)) } invisible() } #:292 #293: dichtespur.interaktiv<-function(x){ par(mfrow=c(3,1)) w<-(quantile(x,.65)-quantile(x,.35)) bjdpl<-function(x,rel.width=0.001){ set.seed(13); z<-1+runif(length(x)) par(mfg=c(1,1,3,1)); xlim<-c(min(x),max(x)) plot(x,z,ylim=c(0,2),xlab="",ylab="",xlim=xlim) bxpl.data<-boxplot(x,plot=F) if(length(bxpl.data$out)>0) segments(bxpl.data$out,0.2,bxpl.data$out,0.8) lines(c(bxpl.data$stats[3], bxpl.data$stats[4], bxpl.data$stats[4], bxpl.data$stats[2], bxpl.data$stats[2], bxpl.data$stats[3], bxpl.data$stats[3]), c(.2,.2,.8,.8,.2,.2,.8)) segments(bxpl.data$stats[1],.2,bxpl.data$stats[1],.8) segments(bxpl.data$stats[5],.2,bxpl.data$stats[5],.8) segments(bxpl.data$stats[1],.5,bxpl.data$stats[2],.5) segments(bxpl.data$stats[5],.5,bxpl.data$stats[4],.5) h<-density(x,width=rel.width*(max(x)-min(x)),n=100,window="g") par(mfg=c(2,1,3,1)); plot(h,type="l",xlab="",ylab="",xlim=xlim) par(mfg=c(3,1,3,1)) } frame() cat("Ende: EXIT in Graphik anklicken!\n") grin(par.matrix=rbind(lambda=c(-1,3,1,Inf), rel.width =c(0,1,.02,Inf)), expressions=c("xx<-if(lambda!=0)(x^lambda-1)/lambda else log(x)", "bjdpl(xx,rel.width)"), center=cbind(.5,c(.2,.5,.8)), size= matrix(c(0.8,0.2),3,2,T), pic.del=T) par(mfrow=c(1,1)) } #:293 #295: F.dach<-function(xy,breaks,xlim,...){ #294: F.dach.local<-function(x,breaks,xlim,...){ if(is.null(breaks)){ if(missing(xlim)) xlim<-range(x) x<-sort(x) n<-length(x) F.x<-(1:n)/n plot(0:1,0:1,type="n",xlim=xlim,xlab="x",ylab="F.dach") segments(c(x[-n],x[1],x[n]), c(F.x[-n],0:1), c(x[-1],par()$usr[1:2]), c(F.x[-n],0:1),...) points(unique(x),cumsum(table(x))/length(x),pch=4) } else { breaks<-sort(breaks) if(max(x)>breaks[length(breaks)]) breaks<-c(breaks,max(x)) if(min(x)<=breaks[1]) breaks<-c(min(x)-0.001*(max(x)-min(x)),breaks) counts<-table(cut(x,breaks)) F.x<-cumsum(counts)/length(x) if(missing(xlim)) xlim<-range(breaks) plot(c(min(x),max(x)),0:1,type="n",xlim=xlim,xlab="x",ylab="F.dach") lines(breaks,c(0,F.x),...) } } #:294 if(is.matrix(xy)) xy<-split(xy,col(xy)) if(!is.recursive(xy)) xy<-list(xy) if(missing(breaks)) breaks<-NULL if(missing(xlim)) xlim<-range(pretty(unlist(xy))) i<- 0 oldpar<-par()$lty for(el in xy){ F.dach.local(el, breaks=breaks, xlim=xlim, lty=i<-i+1, ...) par(new=T) } par(lty=oldpar); par(new=F) if(i>1){ namen<-names(xy) if(is.null(namen)) namen<-as.character(1:length(xy)) legend(.3*xlim[1]+.7*xlim[2],.7,namen,lty=1:i) } } #:295 #296: F.dach.look.up<-function(x){ print("bitte zweimal Punkt im F.dach-Plot anklicken!") h<-function(x){ xy<-unlist(locator(n=1)) p1<-xy[2]; x1<-xy[1] p <-sum(x<=x1)/length(x) if(p>=p1){ p1<-p } else { x1<-sort(x)[max(1,ceiling(p1*length(x)))] p1<-sum(x<=x1)/length(x) } lines(c(par()$usr[1],x1,x1),c(p1,p1,par()$usr[3])) return(c(x1,p1)) } xy<-rbind(h(x),h(x)) dimnames(xy)<-NULL if(xy[1,1]>xy[2,1]) xy<-xy[2:1,] result<-c("x1" = xy[1,1], "F.dach(x1)" = xy[1,2], "1-F.dach(x1)" =1-xy[1,2], "x2" = xy[2,1], "F.dach(x2)" = xy[2,2], "1-F.dach(x2)" =1-xy[2,2], "F.dach(x2)-F.dach(x1)"=xy[2,2]-xy[1,2]) print(result) invisible() } #:296 #297: scatter<-function(xy,xlim,ylim,hull=0,...){ if(is.matrix(xy)) xy<-split(xy,col(xy)) if(!is.recursive(xy)) xy<-list(xy) if(missing(xlim)) xlim<-range(pretty(unlist(xy[1]))) if(missing(ylim)) ylim<-range(pretty(unlist(xy[2]))) namen<-names(xy)[1:2] if(is.null(namen)) namen<-c("x","y") plot(xy[[1]],xy[[2]],xlim=xlim,ylim=ylim,xlab=namen[1],ylab=namen[2],...) if(hull>0){ HULL<-function(xy,hull){ h<-chull(xy[[1]],xy[[2]],peel=T) h<-split(h$hull,rep(seq(h$count),h$count)) old<-par()$lty for(i in 1:min(hull,length(h))){ j<-h[[i]] if(length(j)>2) polygon(xy[[1]][j],xy[[2]][j],density=0,lty=i) } par(lty=old) } HULL(xy[1:2],hull) } } #:297 #298: dichtespur<-function(xy,xlim,width,...){ if(is.matrix(xy)) xy<-split(xy,col(xy)) if(!is.recursive(xy)) xy<-list(xy) if(missing(xlim)) xlim<-range(pretty(unlist(xy))) if(missing(width)){ print(paste("der Bereich der x-Achse beginnt bei:",xlim[1])) print(paste("und endet bei:",xlim[2])) print("geben Sie die Fensterweite an:") width<-c(scan(,0,n=1),0.1*(xlim[2]-xlim[1]))[1] } h<-NULL; ymax<-0 for(el in xy){ hh<-density(el,width=width,n=100,window="g") .l<-hh$x>=xlim[1] & hh$x<=xlim[2] hh$x<-hh$x[.l];hh$y<-hh$y[.l] h <-c(h,list(hh)) ymax<-max(ymax,hh$y) } plot(0:1,0:1,type="n",xlim=xlim,ylim=c(0,ymax),xlab="x",ylab="f.dach") oldpar<-par()$lty; i<- 0 for(el in h){ lines(el$x,el$y,lty=i<-i+1) } par(lty=oldpar) if(i>1){ namen<-names(xy) if(is.null(namen)) namen<-as.character(1:length(xy)) legend(.3*xlim[1]+.7*xlim[2],.7*ymax,namen,lty=1:i) } } #:298 #299: histogramm<-function(xy,xlim,breaks,nclass ){ if(missing(xlim)) xlim<-range(pretty(c(min(unlist(xy)),max(unlist(xy))))) if(missing(breaks)){ if(missing(nclass)) nclass <- log(length(unlist(xy)), base = 2) + 1 nclass<-ceiling(nclass) breaks<-xlim[1]+(0:nclass)/nclass*(xlim[2]-xlim[1]) } if(is.list(xy)){ OLDPAR<-par() par(mfrow=c(length(xy),1)) for(i in 1:length(xy)) hist(xy[[i]], breaks=breaks, xlim=xlim, probability=T, xlab=getnames(xy)[i],ylab="f.dach") par(OLDPAR) } else hist(xy,xlim=xlim,breaks=breaks,probability=T,xlab="x",ylab="f.dach") } #:299 #300: qqpairsplot<-function(xy){ OLDPAR<-par() par(mfrow=rep(length(xy),2)) for(i in 1:length(xy)) for(j in 1:length(xy)){ qqplot(xy[[i]],xy[[j]], xlab=getnames(xy)[i], ylab=getnames(xy)[j]) abline(0,1) } par(OLDPAR) } #:300 #301: summary.stats<-function(xy,xlim,...){ l.summary<-function(x){ options(digits=7) h<-c(summary(x),"Std.Dev."=var(x)^0.5,n=length(x)) options(digits=5) return(h) } namen<-getnames(xy) if(is.matrix(xy)){ xy<-split(xy,col(xy)) names(xy)<-namen } if(!is.recursive(xy)) return(l.summary(xy)) else return(lapply(xy,l.summary)) } #:301 #302: box.cox.transformation<-function(xy,lambda){ if(is.list(xy)) n<-length(xy) else n<-1 if(is.matrix(xy)) n<-dim(xy)[2] if(missing(lambda)){ if(n>1){ print("Mit welchen lambdas sollen die Werte der Komponenten") print(getnames(xy)) print("transformiert werden?") print(paste("bitte",n,"lambdas eingeben")) } else { print("Mit welchem lambda sollen die Werte von") print(getnames(xy)) print("transformiert werden?") } lam<-c(scan(,0,n=n),rep(1,n))[1:n] } if(is.null(lam))lam<-1 if(length(lam)i) if(length(x)length(hh)) x <-x [1:length(hh)] xy<-split(x,hh) xy } #:306 #307: bootstrap.experiment<-function(xy,n,ZZ,type){ if(missing(n)){ print("Wie gross soll n sein? n=") n <-c(scan(,0,n=1),3)[1] } if(missing(ZZ)){ print("Zufallsgeneratorstart? ZZ=") set.seed(ZZ<-c(scan(,0,n=1),13)[1]) } if(is.matrix(xy)) xy<-split(xy,col(xy)) if(!is.list(xy)) xy<-list(xy) n.ds<-length(xy) stichproben<-NULL for(i in 1:n.ds){ stichproben<-c(stichproben,list(xy[[i]])) for(j in 1:n){ stichproben<-c(stichproben,list(sample(xy[[i]],replace=T))) } } if(missing(type)){ h<-matrix(as.character(rbind(1:n.ds,matrix(letters[1:n],n,n.ds))),n+1,n.ds) boxplot(stichproben, names=h) } else { h<-c("median","mean","3. Quartil","1. Quartil", "s","var", "Interquartils-Abstand") if(type=="?"){ print("Welche Statistik interessiert Sie?") wahl<-Menu(h) } else { wahl<-(1:7)[h==type] } fkt<-switch(wahl, median, mean, function(x)quantile(x,0.75), function(x)quantile(x,0.25), function(x)var(x)^0.5, var, function(x)quantile(x,0.75)-quantile(x,0.25) ) result<-unlist(lapply(stichproben, fkt )) result<-matrix(result,n+1,n.ds)[-1,] boxplot(split(result,col(result)), names=as.character(1:n.ds)) } stichproben } #:307 #308: kt.work<-function(xy,is.xy.kt=F){ #309: if(missing(xy)) xy<-cbind(c(1,1,1,1,1,1,2,2,2,2,3,3,3,1,2,1,3,2,1), c(1,2,1,2,2,1,2,1,1,1,1,2,2,2,1,2,1,2,2)) if(!is.xy.kt){ #312: if(is.list(xy)){ xy<-table(xy[[1]],xy[[2]]) }else{ if(is.matrix(xy)){ xy<-table(xy[,1],xy[,2]) } else { print("ERROR: Input ist keine Datenmatrix");break} } #:312 } kt.abs<-cbind(xy,sum=apply(xy,1,sum)) kt.abs<-rbind(kt.abs,sum=apply(kt.abs,2,sum)) kt.rel<-kt.abs/kt.abs[length(kt.abs)] #313: kt.ind.rel<-outer(kt.rel[,ncol(kt.rel)],kt.rel[nrow(kt.rel),]) kt.ind.abs<-kt.ind.rel*kt.abs[length(kt.abs)] #:313 #314: h<-kt.ind.abs[-nrow(kt.rel),-ncol(kt.rel)] chiq<-sum((kt.abs[-nrow(kt.rel),-ncol(kt.rel)]-h)^2/h) kontingenz.koef<-(chiq/(kt.abs[length(kt.abs)]-chiq))^0.5 #:314 #:309 repeat{ #310: cat("Auswahl:") wahl<-menu(c("Abbruch/Ende", "Tabelle mit Anzahlen ausgeben", "Tabelle mit relative Haeufigkeiten ausgeben", "Tabelle (absolut) bei Unabhaengigkeit ausgeben", "Tabelle (relativ) bei Unabhaengigkeit ausgeben", "Kontingenzkoeffizienten berechnen", "Zeilenverteilung ausgeben", "Spaltenverteilung ausgeben")) #:310 #311: if(wahl==0)break switch(wahl, break, {print("Tabelle mit absoluten Haeufigkeiten"); print(kt.abs)}, {print("Tabelle mit relativen Haeufigkeiten"); print(kt.rel)}, {print("Tabelle abs. Haeufigkeiten bei Unabhaengigkeit") print(kt.ind.abs)}, {print("Tabelle rel. Haeufigkeiten bei Unabhaengigkeit") print(kt.ind.rel)}, {print("Kontingenzkoeffizient") print(kontingenz.koef) print("Chisquare-Wert") print(chiq)}, { #315: print("Welche Zeile?") i<-scan(,0,n=1) cat("absolute Haeufigkeiten\n") print(kt.abs[i,]) cat("relative Haeufigkeiten\n") print(kt.rel[i,]/kt.rel[i,ncol(kt.rel)]) #:315 }, { #316: print("Welche Spalte?") j<-scan(,0,n=1) cat("absolute Haeufigkeiten\n") print(kt.abs[,j]) cat("relative Haeufigkeiten\n") print(kt.rel[,j]/kt.rel[nrow(kt.rel),j]) #:316 } ) #:311 outin() } } #:308 #317: getnames<-function(xy){ if(is.list(xy)){ if(is.null(names(xy))){ return(as.character(1:length(xy))) } else return(names(xy)) } if(is.matrix(xy)){ if(is.null(dimnames(xy)[[2]])){ return(as.character(1:dim(xy)[2])) } else { return(dimnames(xy)[[2]]) } } return("x") } #:317 #318: binomial.calculator<-function(x.F,n,p){ #319: print("binomial.calculator start") if(missing(n)){ print("Bitte n eingeben! (Default: n=1) n=?") n<-c(scan(,0,n=1),1)[1] } if(missing(p)){ print("Bitte p eingeben! (Default: p=0.5) p=?") p<-c(scan(,0,n=1),.5)[1] } #:319 #320: if(missing(x.F)){ a<-1 #321: if(a==1){ print( c("E(X)"=n*p, "Var(X)"=n*p*(1-p), sigma=(n*p*(1-p))^0.5, "E(X)-2sigma"=n*p-2*(n*p*(1-p))^0.5, "E(X)-sigma"=n*p- (n*p*(1-p))^0.5, "E(X)+sigma"=n*p+ (n*p*(1-p))^0.5, "E(X)+2sigma"=n*p+2*(n*p*(1-p))^0.5) ) } else { print( c("E(aX)"=n*p*a, "Var(aX)"=n*p*(1-p)*a^2, sigma=(n*p*(1-p))^0.5*a, "E(aX)-2sigma"=n*p*a-2*(n*p*(1-p))^0.5*a, "E(aX)-sigma"=n*p*a- (n*p*(1-p))^0.5*a, "E(aX)+sigma"=n*p*a+ (n*p*(1-p))^0.5*a, "E(aX)+2sigma"=n*p*a+2*(n*p*(1-p))^0.5*a) ) } #:321 } else { is.F.x<-T if(any(x.F>1)) is.F.x<-F if(all(floor(x.F)==x.F)) is.F.x <-F if(!is.F.x){ x<-x.F print("Werte der Wahrscheinlichkeitsfunktion:") print(cbind(x=x,"f(x)"=dbinom(x,n,p))) print("Werte der Verteilungsfunktion:") print(cbind(x=x,"F(x)"=pbinom(x,n,p))) } if(is.F.x){ print("Quantile:") print(cbind("eingegeben:F(x)"=F.x,x=qbinom(F.x,n,p))) } } #:320 repeat{ #322: print("Auswahl von binomial.calculator") auswahl<-c("Ende","n eingeben","p eingeben", "f(x) und F(x) berechnen","Quantile berechnen", "Statistiken von aX berechnen","Plot erstellen") wahl<-Menu(auswahl) #:322 #323: switch(wahl, break, { print("Bitte n eingeben! (Default: n=1) n=?") n<-c(scan(,0,n=1),1)[1] }, { print("Bitte p eingeben! (Default: p=0.5) p=?") p<-c(scan(,0,n=1),.5)[1] }, { print("Bitte x eingeben! x=?") x<-scan(,0,n=n+1); if(0==length(x)) x<-0:n print("Werte der Wahrscheinlichkeits- und der Verteilungsfunktion:") print(cbind(x=x,"f(x)"=dbinom(x,n,p),"F(x)"=pbinom(x,n,p))) }, { print("Bitte Wahrscheinlichkeiten eingeben! F(x)=?") F.x<-scan(,0,n=n+1) print("Quantile:") print(cbind("eingegeben:F(x)"=F.x,x=qbinom(F.x,n,p))) }, { print("Um welchen Faktor a soll die Zufallsvariable gestreckt werden?") print("(Default: 1)") a<-c(scan(,0,n=1),1)[1] #321: if(a==1){ print( c("E(X)"=n*p, "Var(X)"=n*p*(1-p), sigma=(n*p*(1-p))^0.5, "E(X)-2sigma"=n*p-2*(n*p*(1-p))^0.5, "E(X)-sigma"=n*p- (n*p*(1-p))^0.5, "E(X)+sigma"=n*p+ (n*p*(1-p))^0.5, "E(X)+2sigma"=n*p+2*(n*p*(1-p))^0.5) ) } else { print( c("E(aX)"=n*p*a, "Var(aX)"=n*p*(1-p)*a^2, sigma=(n*p*(1-p))^0.5*a, "E(aX)-2sigma"=n*p*a-2*(n*p*(1-p))^0.5*a, "E(aX)-sigma"=n*p*a- (n*p*(1-p))^0.5*a, "E(aX)+sigma"=n*p*a+ (n*p*(1-p))^0.5*a, "E(aX)+2sigma"=n*p*a+2*(n*p*(1-p))^0.5*a) ) } #:321 }, { x<-0:n ; F.x<-dbinom(x,n,p) h<-F.x>.0001 ; x<-x[h] ; F.x<-F.x[h] plot(x,F.x,type="n",xlab="x",ylab="f(x)") segments(x,0,x,F.x) } ) #:323 } } #:318 #324: geometric.calculator<-function(x.F,p){ #325: print("geometric.calculator start") if(missing(p)){ print("Bitte p eingeben! (Default: p=0.5) p=?") p<-c(scan(,0,n=1),.5)[1] } #:325 #326: if(missing(x.F)){ #327: q<-1-p print( c("E(X)"=q/p, "Var(X)"=q/(p*p), sigma=q^0.5/p, "E(X)-2sigma"=q/p-2*q^0.5/p, "E(X)-sigma"=q/p- q^0.5/p, "E(X)+sigma"=q/p+ q^0.5/p, "E(X)+2sigma"=q/p+2*q^0.5/p) ) #:327 } else { is.F.x<-T if(any(x.F>1)) is.F.x<-F if(all(floor(x.F)==x.F)) is.F.x <-F if(!is.F.x){ x<-x.F print("Werte der Wahrscheinlichkeitsfunktion:") print(cbind(x=x,"f(x)"=dgeom(x,p))) print("Werte der Verteilungsfunktion:") print(cbind(x=x,"F(x)"=pgeom(x,p))) } if(is.F.x){ print("Quantile:") print(cbind("eingegeben:F(x)"=F.x,x=qgeom(F.x,p))) } } #:326 repeat{ #328: print("Auswahl von geometric.calculator") auswahl<-c("Ende","p eingeben", "f(x) und F(x) berechnen","Quantile berechnen", "Statistiken berechnen","Plot erstellen") wahl<-Menu(auswahl) #:328 #329: switch(wahl, break, { print("Bitte p eingeben! (Default: p=0.5) p=?") p<-c(scan(,0,n=1),.5)[1] }, { print("Bitte x eingeben! x=?") n<-(1-p)/p+5*(1-p)^0.5/p x<-scan(,0,n=n+1); if(0==length(x)) x<-0:n print("Werte der Wahrscheinlichkeits- und der Verteilungsfunktion:") print(cbind(x=x,"f(x)"=dgeom(x,p),"F(x)"=pgeom(x,p))) }, { print("Bitte Wahrscheinlichkeiten eingeben! F(x)=?") n<-(1-p)/p+3.5*(1-p)^0.5/p F.x<-scan(,0,n=n+1) print("Quantile:") print(cbind("eingegeben:F(x)"=F.x,x=qgeom(F.x,p))) }, { #327: q<-1-p print( c("E(X)"=q/p, "Var(X)"=q/(p*p), sigma=q^0.5/p, "E(X)-2sigma"=q/p-2*q^0.5/p, "E(X)-sigma"=q/p- q^0.5/p, "E(X)+sigma"=q/p+ q^0.5/p, "E(X)+2sigma"=q/p+2*q^0.5/p) ) #:327 }, { n<-(1-p)/p+5*(1-p)^0.5/p x<-0:n ; F.x<-dgeom(x,p) h<-F.x>.0001 ; x<-x[h] ; F.x<-F.x[h] plot(x,F.x,type="n",xlab="x",ylab="f(x)") segments(x,0,x,F.x) } ) #:329 } } #:324 #330: exponential.calculator<-function(x.F,lambda){ #331: print("exponential.calculator start") if(missing(lambda)){ print("Bitte lambda eingeben! (Default: lambda=1) lambda=?") lambda<-c(scan(,0,n=1),1)[1] } #:331 #332: if(missing(x.F)){ #333: print( c("E(X)"=1/lambda, "Var(X)"=1/(lambda*lambda), sigma=1/lambda, "E(X)-2sigma"=1/lambda-2*1/lambda, "E(X)-sigma"=1/lambda- 1/lambda, "E(X)+sigma"=1/lambda+ 1/lambda, "E(X)+2sigma"=1/lambda+2*1/lambda) ) #:333 } else { is.F.x<-T if(any(x.F>1)) is.F.x<-F if(all(floor(x.F)==x.F)) is.F.x <-F if(!is.F.x){ x<-x.F print("Werte der Dichtefunktion:") print(cbind(x=x,"f(x)"=dexp(x,lambda))) print("Werte der Verteilungsfunktion:") print(cbind(x=x,"F(x)"=pexp(x,lambda))) } if(is.F.x){ print("Quantile:") print(cbind("eingegeben:F(x)"=F.x,x=qexp(F.x,lambda))) } } #:332 repeat{ #334: print("Auswahl von exponential.calculator") auswahl<-c("Ende","lambda eingeben", "f(x) und F(x) berechnen","Quantile berechnen", "Statistiken berechnen","Plot erstellen") wahl<-Menu(auswahl) #:334 #335: switch(wahl, break, { print("Bitte lambda eingeben! (Default: lambda=1) lambda=?") lambda<-c(scan(,0,n=1),1)[1] }, { print("Bitte x eingeben! x=?") x<-scan(,0); if(0==length(x)) x<-(0:20)/20*(3/lambda) print("Werte der Dichtefunktion und der Verteilungsfunktion:") print(cbind(x=x,"f(x)"=dexp(x,lambda),"F(x)"=pexp(x,lambda))) }, { print("Bitte Wahrscheinlichkeiten eingeben! F(x)=?") F.x<-scan(,0) print("Quantile:") print(cbind("eingegeben:F(x)"=F.x,x=qexp(F.x,lambda))) }, { #333: print( c("E(X)"=1/lambda, "Var(X)"=1/(lambda*lambda), sigma=1/lambda, "E(X)-2sigma"=1/lambda-2*1/lambda, "E(X)-sigma"=1/lambda- 1/lambda, "E(X)+sigma"=1/lambda+ 1/lambda, "E(X)+2sigma"=1/lambda+2*1/lambda) ) #:333 }, { x<-(1:200)/lambda/50 ; F.x<-dexp(x,lambda) h<-F.x>.0001 ; x<-x[h] ; F.x<-F.x[h] plot(x,F.x,type="l",xlab="x",ylab="f(x)") } ) #:335 } } #:330 #336: poisson.calculator<-function(x.F,lambda){ #337: print("poisson.calculator start") if(missing(lambda)){ print("Bitte lambda eingeben! (Default: lambda=1) lambda=?") lambda<-c(scan(,0,n=1),1)[1] } #:337 #338: if(missing(x.F)){ #339: print( c("E(X)"=lambda, "Var(X)"=lambda, sigma=lambda^0.5, "E(X)-2sigma"=lambda-2*lambda^0.5, "E(X)-sigma"=lambda- lambda^0.5, "E(X)+sigma"=lambda+ lambda^0.5, "E(X)+2sigma"=lambda+2*lambda^0.5) ) #:339 } else { is.F.x<-T if(any(x.F>1)) is.F.x<-F if(all(floor(x.F)==x.F)) is.F.x <-F if(!is.F.x){ x<-x.F print("Werte der Dichtefunktion:") print(cbind(x=x,"f(x)"=dpois(x,lambda))) print("Werte der Verteilungsfunktion:") print(cbind(x=x,"F(x)"=ppois(x,lambda))) } if(is.F.x){ print("Quantile:") print(cbind("eingegeben:F(x)"=F.x,x=qpois(F.x,lambda))) } } #:338 repeat{ #340: print("Auswahl von poisson.calculator") auswahl<-c("Ende","lambda eingeben", "f(x) und F(x) berechnen","Quantile berechnen", "Statistiken berechnen","Plot erstellen") wahl<-Menu(auswahl) #:340 #341: switch(wahl, break, { print("Bitte lambda eingeben! (Default: lambda=1) lambda=?") lambda<-c(scan(,0,n=1),1)[1] }, { print("Bitte x eingeben! x=?") x<-scan(,0); if(0==length(x)) x<-qpois(.01,lambda):qpois(.99,lambda) print("Werte der Wahrscheinlichkeits- und der Verteilungsfunktion:") print(cbind(x=x,"f(x)"=dpois(x,lambda),"F(x)"=ppois(x,lambda))) }, { print("Bitte Wahrscheinlichkeiten eingeben! F(x)=?") F.x<-scan(,0) print("Quantile:") print(cbind("eingegeben:F(x)"=F.x,x=qpois(F.x,lambda))) }, { #339: print( c("E(X)"=lambda, "Var(X)"=lambda, sigma=lambda^0.5, "E(X)-2sigma"=lambda-2*lambda^0.5, "E(X)-sigma"=lambda- lambda^0.5, "E(X)+sigma"=lambda+ lambda^0.5, "E(X)+2sigma"=lambda+2*lambda^0.5) ) #:339 }, { x<-qpois(.01,lambda):qpois(.99,lambda); F.x<-dpois(x,lambda) h<-F.x>.00001 ; x<-x[h] ; F.x<-F.x[h] plot(x,F.x,type="n",xlab="x",ylab="f(x)") segments(x,F.x,x,0) } ) #:341 } } #:336 #342: normal.calculator<-function(x.F,mu,sigma){ #343: print("normal.calculator start") if(missing(mu)){ #344: print("Bitte Mittel eingeben! (Default: mu=0) mu=?") mu<-c(scan(,0,n=1),0)[1] #:344 } if(missing(sigma)){ #345: print("sigma ist festzulegen!") print("Wenn Sie") print(" Standardabweichung eingeben wollen, bitte 0 eingeben,") print(" Varianz eingeben wollen, bitte 1 eingeben!") print(" (Default -- leere Eingabe: 0)") h<-c(scan(,0,n=1),0)[1] if(h!=1){ print("Bitte STANDARDABWEICHUNG festlegen! (Default: 1) sigma=?") sigma<-abs(c(scan(,0,n=1),1)[1]) } else { print("Bitte VARIANZ festlegen! (Default: 1) sigma^2=?") sigma<-abs(c(scan(,0,n=1),1)[1])^0.5 } #:345 } if(missing(x.F)) x.F<-mu+(-3:3)*sigma #:343 #346: if(missing(x.F)){ #347: print( c("E(X)"=mu, "Var(X)"=sigma^2, sigma=sigma, "E(X)-2sigma"=mu-2*sigma, "E(X)-sigma"=mu- sigma, "E(X)+sigma"=mu+ sigma, "E(X)+2sigma"=mu+2*sigma) ) #:347 #350: x<-x.F xmin<-min(-3.5,qnorm(.01,mu,sigma),x) xmax<-max(3.5,qnorm(.99,mu,sigma),x) z0<-(x-mu)/sigma p.z0<-pnorm(z0) xx<-seq(from=mu-3*sigma,to=mu+3*sigma,length=150) xx<-xx[xmin<=xx&xx<=xmax] Fxx<-pnorm(xx,mu,sigma) fxx<-dnorm(xx,mu,sigma) zz<-seq(from=-3,to=3,length=150) Fzz<-pnorm(zz) fzz<-dnorm(zz) fmax<-max(fxx,fzz) par(mfrow=c(3,2)) # PLOT 1,1 plot(1,xlab="",ylab="",ylim=c(0,1), xlim=c(xmin,xmax), type="n") lines(xx,Fxx) segments(par()$usr[1],0,xx[1],0) segments(par()$usr[2],1,xx[length(xx)],1) abline(v=x) title("F(x)") # PLOT 1,2 plot(1,xlab="",ylab="",ylim=c(0,fmax), xlim=c(xmin,xmax), type="n") lines(xx,fxx) segments(par()$usr[1],0,xx[1],0) segments(par()$usr[2],0,xx[length(xx)],0) abline(v=x) title("f(x)") # PLOT 2,1 plot(1,type="n",xlim=c(xmin,xmax),ylim=c(xmin,xmax),xlab="",ylab="") abline(0,1,lty=2) abline(mu,sigma,lty=4) legend(xmin,xmax,legend=c("f(x)=x","x=sigma*z+mu"),lty=c(2,4)) h<-xmin<=z0 & z0<=xmax segments(x,xmax,x,x) segments(x,x,pmin(xmax,pmax(z0,xmin)),x) if(any(h))segments(z0[h],xmin,z0[h],x[h]) title("Transformation") # PLOT 2,2 plot(1,type="n",xlim=c(xmin,xmax),ylim=c(xmin,xmax),xlab="",ylab="") abline(0,1,lty=2) abline(mu,sigma,lty=4) legend(xmin,xmax,legend=c("f(x)=x","x=sigma*z+mu"),lty=c(2,4)) segments(x,xmax,x,x) segments(x,x,pmin(xmax,pmax(z0,xmin)),x) if(any(h))segments(z0[h],xmin,z0[h],x[h]) title("Transformation") # PLOT 3,1 plot(1,xlab="",ylab="",ylim=c(0,1), xlim=c(xmin,xmax), type="n") lines(zz,Fzz) segments(par()$usr[1],0,zz[1],0) segments(par()$usr[2],1,zz[length(zz)],1) if(any(h))segments(z0[h],1,z0[h],p.z0[h]) if(any(h))segments(z0[h],p.z0[h],xmin,p.z0[h]) title("Verteilungsfunktion von N(0,1)") # PLOT 3,2 plot(1,xlab="",ylab="",ylim=c(0,fmax), xlim=c(xmin,xmax), type="n") lines(zz,fzz) segments(par()$usr[1],0,zz[1],0) segments(par()$usr[2],0,zz[length(zz)],0) if(any(h))abline(v=z0[h]) title("Dichte von N(0,1)") par(mfrow=c(1,1)) #:350 } else { is.F.x<-T if(any(x.F>1)) is.F.x<-F if(all(floor(x.F)==x.F)) is.F.x <-F if(!is.F.x){ x<-x.F print("Werte der Dichtefunktion und der Verteilungsfunktion:") print(cbind(x=x,"f(x)"=dnorm(x,mu,sigma),"F(x)"=pnorm(x,mu,sigma))) } if(is.F.x){ print("Quantile:") print(cbind("F(x)"=x.F,x=qnorm(x.F,mu,sigma))) } } #:346 repeat{ #348: print("Auswahl von normal.calculator") auswahl<-c("Ende","Mittel festsetzen","Variabilitaet festlegen", "f(x), F(x), (1-F(x)) berechnen","Quantile berechnen", "X verschieben", "X skalieren") wahl<-Menu(auswahl) #:348 #349: switch(wahl, break, { #344: print("Bitte Mittel eingeben! (Default: mu=0) mu=?") mu<-c(scan(,0,n=1),0)[1] #:344 #347: print( c("E(X)"=mu, "Var(X)"=sigma^2, sigma=sigma, "E(X)-2sigma"=mu-2*sigma, "E(X)-sigma"=mu- sigma, "E(X)+sigma"=mu+ sigma, "E(X)+2sigma"=mu+2*sigma) ) #:347 #350: x<-x.F xmin<-min(-3.5,qnorm(.01,mu,sigma),x) xmax<-max(3.5,qnorm(.99,mu,sigma),x) z0<-(x-mu)/sigma p.z0<-pnorm(z0) xx<-seq(from=mu-3*sigma,to=mu+3*sigma,length=150) xx<-xx[xmin<=xx&xx<=xmax] Fxx<-pnorm(xx,mu,sigma) fxx<-dnorm(xx,mu,sigma) zz<-seq(from=-3,to=3,length=150) Fzz<-pnorm(zz) fzz<-dnorm(zz) fmax<-max(fxx,fzz) par(mfrow=c(3,2)) # PLOT 1,1 plot(1,xlab="",ylab="",ylim=c(0,1), xlim=c(xmin,xmax), type="n") lines(xx,Fxx) segments(par()$usr[1],0,xx[1],0) segments(par()$usr[2],1,xx[length(xx)],1) abline(v=x) title("F(x)") # PLOT 1,2 plot(1,xlab="",ylab="",ylim=c(0,fmax), xlim=c(xmin,xmax), type="n") lines(xx,fxx) segments(par()$usr[1],0,xx[1],0) segments(par()$usr[2],0,xx[length(xx)],0) abline(v=x) title("f(x)") # PLOT 2,1 plot(1,type="n",xlim=c(xmin,xmax),ylim=c(xmin,xmax),xlab="",ylab="") abline(0,1,lty=2) abline(mu,sigma,lty=4) legend(xmin,xmax,legend=c("f(x)=x","x=sigma*z+mu"),lty=c(2,4)) h<-xmin<=z0 & z0<=xmax segments(x,xmax,x,x) segments(x,x,pmin(xmax,pmax(z0,xmin)),x) if(any(h))segments(z0[h],xmin,z0[h],x[h]) title("Transformation") # PLOT 2,2 plot(1,type="n",xlim=c(xmin,xmax),ylim=c(xmin,xmax),xlab="",ylab="") abline(0,1,lty=2) abline(mu,sigma,lty=4) legend(xmin,xmax,legend=c("f(x)=x","x=sigma*z+mu"),lty=c(2,4)) segments(x,xmax,x,x) segments(x,x,pmin(xmax,pmax(z0,xmin)),x) if(any(h))segments(z0[h],xmin,z0[h],x[h]) title("Transformation") # PLOT 3,1 plot(1,xlab="",ylab="",ylim=c(0,1), xlim=c(xmin,xmax), type="n") lines(zz,Fzz) segments(par()$usr[1],0,zz[1],0) segments(par()$usr[2],1,zz[length(zz)],1) if(any(h))segments(z0[h],1,z0[h],p.z0[h]) if(any(h))segments(z0[h],p.z0[h],xmin,p.z0[h]) title("Verteilungsfunktion von N(0,1)") # PLOT 3,2 plot(1,xlab="",ylab="",ylim=c(0,fmax), xlim=c(xmin,xmax), type="n") lines(zz,fzz) segments(par()$usr[1],0,zz[1],0) segments(par()$usr[2],0,zz[length(zz)],0) if(any(h))abline(v=z0[h]) title("Dichte von N(0,1)") par(mfrow=c(1,1)) #:350 }, { #345: print("sigma ist festzulegen!") print("Wenn Sie") print(" Standardabweichung eingeben wollen, bitte 0 eingeben,") print(" Varianz eingeben wollen, bitte 1 eingeben!") print(" (Default -- leere Eingabe: 0)") h<-c(scan(,0,n=1),0)[1] if(h!=1){ print("Bitte STANDARDABWEICHUNG festlegen! (Default: 1) sigma=?") sigma<-abs(c(scan(,0,n=1),1)[1]) } else { print("Bitte VARIANZ festlegen! (Default: 1) sigma^2=?") sigma<-abs(c(scan(,0,n=1),1)[1])^0.5 } #:345 #347: print( c("E(X)"=mu, "Var(X)"=sigma^2, sigma=sigma, "E(X)-2sigma"=mu-2*sigma, "E(X)-sigma"=mu- sigma, "E(X)+sigma"=mu+ sigma, "E(X)+2sigma"=mu+2*sigma) ) #:347 #350: x<-x.F xmin<-min(-3.5,qnorm(.01,mu,sigma),x) xmax<-max(3.5,qnorm(.99,mu,sigma),x) z0<-(x-mu)/sigma p.z0<-pnorm(z0) xx<-seq(from=mu-3*sigma,to=mu+3*sigma,length=150) xx<-xx[xmin<=xx&xx<=xmax] Fxx<-pnorm(xx,mu,sigma) fxx<-dnorm(xx,mu,sigma) zz<-seq(from=-3,to=3,length=150) Fzz<-pnorm(zz) fzz<-dnorm(zz) fmax<-max(fxx,fzz) par(mfrow=c(3,2)) # PLOT 1,1 plot(1,xlab="",ylab="",ylim=c(0,1), xlim=c(xmin,xmax), type="n") lines(xx,Fxx) segments(par()$usr[1],0,xx[1],0) segments(par()$usr[2],1,xx[length(xx)],1) abline(v=x) title("F(x)") # PLOT 1,2 plot(1,xlab="",ylab="",ylim=c(0,fmax), xlim=c(xmin,xmax), type="n") lines(xx,fxx) segments(par()$usr[1],0,xx[1],0) segments(par()$usr[2],0,xx[length(xx)],0) abline(v=x) title("f(x)") # PLOT 2,1 plot(1,type="n",xlim=c(xmin,xmax),ylim=c(xmin,xmax),xlab="",ylab="") abline(0,1,lty=2) abline(mu,sigma,lty=4) legend(xmin,xmax,legend=c("f(x)=x","x=sigma*z+mu"),lty=c(2,4)) h<-xmin<=z0 & z0<=xmax segments(x,xmax,x,x) segments(x,x,pmin(xmax,pmax(z0,xmin)),x) if(any(h))segments(z0[h],xmin,z0[h],x[h]) title("Transformation") # PLOT 2,2 plot(1,type="n",xlim=c(xmin,xmax),ylim=c(xmin,xmax),xlab="",ylab="") abline(0,1,lty=2) abline(mu,sigma,lty=4) legend(xmin,xmax,legend=c("f(x)=x","x=sigma*z+mu"),lty=c(2,4)) segments(x,xmax,x,x) segments(x,x,pmin(xmax,pmax(z0,xmin)),x) if(any(h))segments(z0[h],xmin,z0[h],x[h]) title("Transformation") # PLOT 3,1 plot(1,xlab="",ylab="",ylim=c(0,1), xlim=c(xmin,xmax), type="n") lines(zz,Fzz) segments(par()$usr[1],0,zz[1],0) segments(par()$usr[2],1,zz[length(zz)],1) if(any(h))segments(z0[h],1,z0[h],p.z0[h]) if(any(h))segments(z0[h],p.z0[h],xmin,p.z0[h]) title("Verteilungsfunktion von N(0,1)") # PLOT 3,2 plot(1,xlab="",ylab="",ylim=c(0,fmax), xlim=c(xmin,xmax), type="n") lines(zz,fzz) segments(par()$usr[1],0,zz[1],0) segments(par()$usr[2],0,zz[length(zz)],0) if(any(h))abline(v=z0[h]) title("Dichte von N(0,1)") par(mfrow=c(1,1)) #:350 }, { print("Bitte x eingeben! x=?") x.F<-scan(,0) if(0==length(x.F)) x.F<-mu+(-3:3)*sigma #347: print( c("E(X)"=mu, "Var(X)"=sigma^2, sigma=sigma, "E(X)-2sigma"=mu-2*sigma, "E(X)-sigma"=mu- sigma, "E(X)+sigma"=mu+ sigma, "E(X)+2sigma"=mu+2*sigma) ) #:347 #350: x<-x.F xmin<-min(-3.5,qnorm(.01,mu,sigma),x) xmax<-max(3.5,qnorm(.99,mu,sigma),x) z0<-(x-mu)/sigma p.z0<-pnorm(z0) xx<-seq(from=mu-3*sigma,to=mu+3*sigma,length=150) xx<-xx[xmin<=xx&xx<=xmax] Fxx<-pnorm(xx,mu,sigma) fxx<-dnorm(xx,mu,sigma) zz<-seq(from=-3,to=3,length=150) Fzz<-pnorm(zz) fzz<-dnorm(zz) fmax<-max(fxx,fzz) par(mfrow=c(3,2)) # PLOT 1,1 plot(1,xlab="",ylab="",ylim=c(0,1), xlim=c(xmin,xmax), type="n") lines(xx,Fxx) segments(par()$usr[1],0,xx[1],0) segments(par()$usr[2],1,xx[length(xx)],1) abline(v=x) title("F(x)") # PLOT 1,2 plot(1,xlab="",ylab="",ylim=c(0,fmax), xlim=c(xmin,xmax), type="n") lines(xx,fxx) segments(par()$usr[1],0,xx[1],0) segments(par()$usr[2],0,xx[length(xx)],0) abline(v=x) title("f(x)") # PLOT 2,1 plot(1,type="n",xlim=c(xmin,xmax),ylim=c(xmin,xmax),xlab="",ylab="") abline(0,1,lty=2) abline(mu,sigma,lty=4) legend(xmin,xmax,legend=c("f(x)=x","x=sigma*z+mu"),lty=c(2,4)) h<-xmin<=z0 & z0<=xmax segments(x,xmax,x,x) segments(x,x,pmin(xmax,pmax(z0,xmin)),x) if(any(h))segments(z0[h],xmin,z0[h],x[h]) title("Transformation") # PLOT 2,2 plot(1,type="n",xlim=c(xmin,xmax),ylim=c(xmin,xmax),xlab="",ylab="") abline(0,1,lty=2) abline(mu,sigma,lty=4) legend(xmin,xmax,legend=c("f(x)=x","x=sigma*z+mu"),lty=c(2,4)) segments(x,xmax,x,x) segments(x,x,pmin(xmax,pmax(z0,xmin)),x) if(any(h))segments(z0[h],xmin,z0[h],x[h]) title("Transformation") # PLOT 3,1 plot(1,xlab="",ylab="",ylim=c(0,1), xlim=c(xmin,xmax), type="n") lines(zz,Fzz) segments(par()$usr[1],0,zz[1],0) segments(par()$usr[2],1,zz[length(zz)],1) if(any(h))segments(z0[h],1,z0[h],p.z0[h]) if(any(h))segments(z0[h],p.z0[h],xmin,p.z0[h]) title("Verteilungsfunktion von N(0,1)") # PLOT 3,2 plot(1,xlab="",ylab="",ylim=c(0,fmax), xlim=c(xmin,xmax), type="n") lines(zz,fzz) segments(par()$usr[1],0,zz[1],0) segments(par()$usr[2],0,zz[length(zz)],0) if(any(h))abline(v=z0[h]) title("Dichte von N(0,1)") par(mfrow=c(1,1)) #:350 print("Dichte- und Verteilungsfunktion:") print(cbind(x =x.F, "f(x)" =dnorm(x.F,mu,sigma), "F(x)" =pnorm(x.F,mu,sigma), "1-F(x)" =1-pnorm(x.F,mu,sigma))) }, { print("Bitte Wahrscheinlichkeiten eingeben! F(x)=?") Fx<-scan(,0); if(length(Fx)==0) Fx<-c(.05,.1,.25,.5,.75,.9,.95) #347: print( c("E(X)"=mu, "Var(X)"=sigma^2, sigma=sigma, "E(X)-2sigma"=mu-2*sigma, "E(X)-sigma"=mu- sigma, "E(X)+sigma"=mu+ sigma, "E(X)+2sigma"=mu+2*sigma) ) #:347 print("Quantile:") x.F<-qnorm(Fx,mu,sigma) print(cbind("F(x)"=Fx,x=x.F)) #350: x<-x.F xmin<-min(-3.5,qnorm(.01,mu,sigma),x) xmax<-max(3.5,qnorm(.99,mu,sigma),x) z0<-(x-mu)/sigma p.z0<-pnorm(z0) xx<-seq(from=mu-3*sigma,to=mu+3*sigma,length=150) xx<-xx[xmin<=xx&xx<=xmax] Fxx<-pnorm(xx,mu,sigma) fxx<-dnorm(xx,mu,sigma) zz<-seq(from=-3,to=3,length=150) Fzz<-pnorm(zz) fzz<-dnorm(zz) fmax<-max(fxx,fzz) par(mfrow=c(3,2)) # PLOT 1,1 plot(1,xlab="",ylab="",ylim=c(0,1), xlim=c(xmin,xmax), type="n") lines(xx,Fxx) segments(par()$usr[1],0,xx[1],0) segments(par()$usr[2],1,xx[length(xx)],1) abline(v=x) title("F(x)") # PLOT 1,2 plot(1,xlab="",ylab="",ylim=c(0,fmax), xlim=c(xmin,xmax), type="n") lines(xx,fxx) segments(par()$usr[1],0,xx[1],0) segments(par()$usr[2],0,xx[length(xx)],0) abline(v=x) title("f(x)") # PLOT 2,1 plot(1,type="n",xlim=c(xmin,xmax),ylim=c(xmin,xmax),xlab="",ylab="") abline(0,1,lty=2) abline(mu,sigma,lty=4) legend(xmin,xmax,legend=c("f(x)=x","x=sigma*z+mu"),lty=c(2,4)) h<-xmin<=z0 & z0<=xmax segments(x,xmax,x,x) segments(x,x,pmin(xmax,pmax(z0,xmin)),x) if(any(h))segments(z0[h],xmin,z0[h],x[h]) title("Transformation") # PLOT 2,2 plot(1,type="n",xlim=c(xmin,xmax),ylim=c(xmin,xmax),xlab="",ylab="") abline(0,1,lty=2) abline(mu,sigma,lty=4) legend(xmin,xmax,legend=c("f(x)=x","x=sigma*z+mu"),lty=c(2,4)) segments(x,xmax,x,x) segments(x,x,pmin(xmax,pmax(z0,xmin)),x) if(any(h))segments(z0[h],xmin,z0[h],x[h]) title("Transformation") # PLOT 3,1 plot(1,xlab="",ylab="",ylim=c(0,1), xlim=c(xmin,xmax), type="n") lines(zz,Fzz) segments(par()$usr[1],0,zz[1],0) segments(par()$usr[2],1,zz[length(zz)],1) if(any(h))segments(z0[h],1,z0[h],p.z0[h]) if(any(h))segments(z0[h],p.z0[h],xmin,p.z0[h]) title("Verteilungsfunktion von N(0,1)") # PLOT 3,2 plot(1,xlab="",ylab="",ylim=c(0,fmax), xlim=c(xmin,xmax), type="n") lines(zz,fzz) segments(par()$usr[1],0,zz[1],0) segments(par()$usr[2],0,zz[length(zz)],0) if(any(h))abline(v=z0[h]) title("Dichte von N(0,1)") par(mfrow=c(1,1)) #:350 }, { print("Die Zufallsvariable wird um b verschoben.") print("Bitte b eingeben (Default: b==0) b=?") b<-c(scan(,0,n=1),0)[1] mu<-mu+b #347: print( c("E(X)"=mu, "Var(X)"=sigma^2, sigma=sigma, "E(X)-2sigma"=mu-2*sigma, "E(X)-sigma"=mu- sigma, "E(X)+sigma"=mu+ sigma, "E(X)+2sigma"=mu+2*sigma) ) #:347 #350: x<-x.F xmin<-min(-3.5,qnorm(.01,mu,sigma),x) xmax<-max(3.5,qnorm(.99,mu,sigma),x) z0<-(x-mu)/sigma p.z0<-pnorm(z0) xx<-seq(from=mu-3*sigma,to=mu+3*sigma,length=150) xx<-xx[xmin<=xx&xx<=xmax] Fxx<-pnorm(xx,mu,sigma) fxx<-dnorm(xx,mu,sigma) zz<-seq(from=-3,to=3,length=150) Fzz<-pnorm(zz) fzz<-dnorm(zz) fmax<-max(fxx,fzz) par(mfrow=c(3,2)) # PLOT 1,1 plot(1,xlab="",ylab="",ylim=c(0,1), xlim=c(xmin,xmax), type="n") lines(xx,Fxx) segments(par()$usr[1],0,xx[1],0) segments(par()$usr[2],1,xx[length(xx)],1) abline(v=x) title("F(x)") # PLOT 1,2 plot(1,xlab="",ylab="",ylim=c(0,fmax), xlim=c(xmin,xmax), type="n") lines(xx,fxx) segments(par()$usr[1],0,xx[1],0) segments(par()$usr[2],0,xx[length(xx)],0) abline(v=x) title("f(x)") # PLOT 2,1 plot(1,type="n",xlim=c(xmin,xmax),ylim=c(xmin,xmax),xlab="",ylab="") abline(0,1,lty=2) abline(mu,sigma,lty=4) legend(xmin,xmax,legend=c("f(x)=x","x=sigma*z+mu"),lty=c(2,4)) h<-xmin<=z0 & z0<=xmax segments(x,xmax,x,x) segments(x,x,pmin(xmax,pmax(z0,xmin)),x) if(any(h))segments(z0[h],xmin,z0[h],x[h]) title("Transformation") # PLOT 2,2 plot(1,type="n",xlim=c(xmin,xmax),ylim=c(xmin,xmax),xlab="",ylab="") abline(0,1,lty=2) abline(mu,sigma,lty=4) legend(xmin,xmax,legend=c("f(x)=x","x=sigma*z+mu"),lty=c(2,4)) segments(x,xmax,x,x) segments(x,x,pmin(xmax,pmax(z0,xmin)),x) if(any(h))segments(z0[h],xmin,z0[h],x[h]) title("Transformation") # PLOT 3,1 plot(1,xlab="",ylab="",ylim=c(0,1), xlim=c(xmin,xmax), type="n") lines(zz,Fzz) segments(par()$usr[1],0,zz[1],0) segments(par()$usr[2],1,zz[length(zz)],1) if(any(h))segments(z0[h],1,z0[h],p.z0[h]) if(any(h))segments(z0[h],p.z0[h],xmin,p.z0[h]) title("Verteilungsfunktion von N(0,1)") # PLOT 3,2 plot(1,xlab="",ylab="",ylim=c(0,fmax), xlim=c(xmin,xmax), type="n") lines(zz,fzz) segments(par()$usr[1],0,zz[1],0) segments(par()$usr[2],0,zz[length(zz)],0) if(any(h))abline(v=z0[h]) title("Dichte von N(0,1)") par(mfrow=c(1,1)) #:350 }, { print("Die Zufallsvariable wird um a gestreckt.") print("Bitte a eingeben (Default: a==1) a=?") a<-c(scan(,0,n=1),1)[1] if(a==0){ print("ERROR: a==0") } else { mu<-a*mu sigma<-abs(a)*sigma #347: print( c("E(X)"=mu, "Var(X)"=sigma^2, sigma=sigma, "E(X)-2sigma"=mu-2*sigma, "E(X)-sigma"=mu- sigma, "E(X)+sigma"=mu+ sigma, "E(X)+2sigma"=mu+2*sigma) ) #:347 #350: x<-x.F xmin<-min(-3.5,qnorm(.01,mu,sigma),x) xmax<-max(3.5,qnorm(.99,mu,sigma),x) z0<-(x-mu)/sigma p.z0<-pnorm(z0) xx<-seq(from=mu-3*sigma,to=mu+3*sigma,length=150) xx<-xx[xmin<=xx&xx<=xmax] Fxx<-pnorm(xx,mu,sigma) fxx<-dnorm(xx,mu,sigma) zz<-seq(from=-3,to=3,length=150) Fzz<-pnorm(zz) fzz<-dnorm(zz) fmax<-max(fxx,fzz) par(mfrow=c(3,2)) # PLOT 1,1 plot(1,xlab="",ylab="",ylim=c(0,1), xlim=c(xmin,xmax), type="n") lines(xx,Fxx) segments(par()$usr[1],0,xx[1],0) segments(par()$usr[2],1,xx[length(xx)],1) abline(v=x) title("F(x)") # PLOT 1,2 plot(1,xlab="",ylab="",ylim=c(0,fmax), xlim=c(xmin,xmax), type="n") lines(xx,fxx) segments(par()$usr[1],0,xx[1],0) segments(par()$usr[2],0,xx[length(xx)],0) abline(v=x) title("f(x)") # PLOT 2,1 plot(1,type="n",xlim=c(xmin,xmax),ylim=c(xmin,xmax),xlab="",ylab="") abline(0,1,lty=2) abline(mu,sigma,lty=4) legend(xmin,xmax,legend=c("f(x)=x","x=sigma*z+mu"),lty=c(2,4)) h<-xmin<=z0 & z0<=xmax segments(x,xmax,x,x) segments(x,x,pmin(xmax,pmax(z0,xmin)),x) if(any(h))segments(z0[h],xmin,z0[h],x[h]) title("Transformation") # PLOT 2,2 plot(1,type="n",xlim=c(xmin,xmax),ylim=c(xmin,xmax),xlab="",ylab="") abline(0,1,lty=2) abline(mu,sigma,lty=4) legend(xmin,xmax,legend=c("f(x)=x","x=sigma*z+mu"),lty=c(2,4)) segments(x,xmax,x,x) segments(x,x,pmin(xmax,pmax(z0,xmin)),x) if(any(h))segments(z0[h],xmin,z0[h],x[h]) title("Transformation") # PLOT 3,1 plot(1,xlab="",ylab="",ylim=c(0,1), xlim=c(xmin,xmax), type="n") lines(zz,Fzz) segments(par()$usr[1],0,zz[1],0) segments(par()$usr[2],1,zz[length(zz)],1) if(any(h))segments(z0[h],1,z0[h],p.z0[h]) if(any(h))segments(z0[h],p.z0[h],xmin,p.z0[h]) title("Verteilungsfunktion von N(0,1)") # PLOT 3,2 plot(1,xlab="",ylab="",ylim=c(0,fmax), xlim=c(xmin,xmax), type="n") lines(zz,fzz) segments(par()$usr[1],0,zz[1],0) segments(par()$usr[2],0,zz[length(zz)],0) if(any(h))abline(v=z0[h]) title("Dichte von N(0,1)") par(mfrow=c(1,1)) #:350 } } ) #:349 } } #:342 #351: demo.Laplace<-function(n=10,p=0.5){ #352: par(mfrow=c(1,2)) #:352 repeat{ #353: cat("Geben Sie n ein! n=?\n") n<-max(1,floor(c(scan(,0,n=1),n)[1])) cat("Geben Sie p ein! p=?\n") p<-c(scan(,0,n=1),p)[1] p<-max(.0001,min(.9999,p)) #:353 #355: sigma<-((mu<-n*p)*(1-p))^0.5 x<-0:n; if(n>19)x<-x[x>mu-5*sigma&x19){ x<-x[y>0.0001] y<-y[y>0.0001] } xnorm<-seq(from=mu-5*sigma,to=mu+5*sigma,length=250) xnorm<-xnorm[xnorm>=min(x)&xnorm<=max(x)] ynorm<-dnorm(xnorm,mu,sigma) ymax<-max(y,ynorm) plot(x,y,ylab="f(x)",ylim=c(0,ymax)) segments(x,0,x,y) lines(xnorm,ynorm) title(paste("WS-Funktion/NV-Dichte\nn=",n,", p=",p)) #:355 #356: d <-y- (pnorm(x,mu,sigma)-pnorm(x-1,mu,sigma)) cd<-pbinom(x,n,p)-pnorm(x,mu,sigma) plot(x,cd,ylab="error",ylim=c(min(0,d,cd),max(0,d,cd))) segments(x,0,x,d) abline(h=0) title("Fehler:f()-Approximation\n(Punkte:Fehler,kumuliert)") #:356 #354: cat("Wollen Sie die Funktion beenden? (j=ja)\n") wahl<-c(scan(,"",n=1),"n")[1] if(wahl=="j") break #:354 } #357: par(mfrow=c(1,1)) #:357 } #:351 #358: demo.zgws<-function(model="norm",n=10,runs=100,...){ #359: #360: ynorm<-pnorm(xnorm<-(-80:80)/20) #365: cat("Modell / Aus welcher Verteilung sollen\n") cat("Stichproben gezogen werden (Default: Normalverteilung)?\n") wahl<-Menu(c( "Abbruch/Ende", "Normalverteilung", "Exponentialverteilung", "Gleichverteilung", "Cauchy-Verteilung", "Binomialverteilung", "Poisson-Verteilung")) if(wahl==0) break switch(wahl, break, { cat("Bitte Mittel der Normalverteilung eingeben (Default: 0)!\n") mue<-c(scan(,0,n=1),0)[1] cat("Bitte Standardabweichung eingeben (Default: 1)!\n") sigma<-c(scan(,0,n=1),1)[1] if(sigma<=0){cat("ERROR: sigma nicht positiv!\n"); sigma<-1} realisiere.stpr<-"rnorm(n*runs,mue,sigma)" legend<-paste("NV(",mue,",",sigma,")",sep="") },{ cat("Bitte LAMBDA der Exponentialverteilung eingeben (Default: 1)!\n") lambda<-c(scan(,0,n=1),1)[1] if(lambda<=0){cat("ERROR: lambda nicht positiv!\n"); lambda<-1} realisiere.stpr<-"rexp(n*runs,lambda)" legend<-paste("Exp(",lambda,")",sep="") },{ cat("Bitte Untergrenze der Gleichverteilung eingeben (Default: 0)!\n") ug<-c(scan(,0,n=1),0)[1] cat("Bitte Obergrenze eingeben (Default: 1)!\n") og<-c(scan(,0,n=1),1)[1] if(og<=ug){cat("ERROR: Grenzen falsch!\n"); og<-1+ug<-0} realisiere.stpr<-"runif(n*runs,ug,og)" legend<-paste("U(",ug,",",og,")",sep="") },{ cat("Bitte Zentrum der Cauchy-Verteilung eingeben (Default: 0)!\n") mue<-c(scan(,0,n=1),0)[1] cat("Bitte Skalenparameter eingeben (Default: 1)!\n") sigma<-c(scan(,0,n=1),1)[1] if(sigma<=0){cat("ERROR: Skalenparameter nicht positiv!\n"); sigma<-1} realisiere.stpr<-"rcauchy(n*runs,mue,sigma)" legend<-paste("Cauchy(",mue,",",sigma,")",sep="") },{ cat("Bitte n der Binomialverteilung eingeben (Default: 1)!\n") nbin<-floor(c(scan(,0,n=1),1)[1]) cat("Bitte p eingeben (Default: 0.5)!\n") p<-c(scan(,0,n=1),0.5)[1] if(nbin<=0){cat("ERROR: n nicht positiv!\n"); nbin<-1} if(p<=0|p>=1){cat("ERROR: p falsch!\n"); p<-0.5} realisiere.stpr<-"rbinom(n*runs,nbin,p)" legend<-paste("Binom(",nbin,",",p,")",sep="") },{ cat("Bitte LAMBDA der Poisson-Verteilung eingeben (Default: 1)!\n") lambda<-c(scan(,0,n=1),1)[1] if(lambda<=0){cat("ERROR: lambda nicht positiv!\n"); lambda<-1} realisiere.stpr<-"rpois(n*runs,lambda)" legend<-paste("Poisson(",lambda,")",sep="") } ) # end of switch cat("Bitte Umfang der einzelnen Stichproben eingeben! (Default: 5)\n") n<-max(1,min(floor(c(scan(n=1),5)[1]),100000)) cat("Bitte Umfang der Wiederholungen eingeben! (Default: 100)\n") runs<-max(1,min(floor(c(scan(n=1),100)[1]),10000)) cat("Bitte Start des Zufallszahlengenerators eingeben! (Default: 13)\n") set.seed(max(1,min(floor(c(scan(n=1),13)[1]),999))) #:365 par(mfrow=1:2) #:360 repeat{ #362: x<-eval(parse(text=realisiere.stpr)) x<-matrix(x,n,runs) #:362 #363: xsum<-apply(x,2,sum) xsum<-xsum-mean(xsum) xsum<-xsum/sqrt(var(xsum)) #:363 #364: plot(c(-4,4),c(0,1),type="n",xlab="transformierte Mittel",ylab="F.dach, Phi") points(sort(xsum),(1:length(xsum))/length(xsum)) lines(xnorm,ynorm) text(-3,0.9,legend) text(-3,0.8,paste("n =",n)) title("empirische Verteilung\ntransformierte Mittel") pfade<-apply(x,2,cumsum)/matrix(1:n,n,runs) yminmax<-range(pfade[,1:min(15,runs)]) plot(1,xlim=c(1,n),ylim=yminmax,xlab="x",ylab="Mittel bis x") title("Entwicklung der Mittel") for(i in 1:min(15,runs)) lines(1:n,pfade[,i]) #:364 #365: cat("Modell / Aus welcher Verteilung sollen\n") cat("Stichproben gezogen werden (Default: Normalverteilung)?\n") wahl<-Menu(c( "Abbruch/Ende", "Normalverteilung", "Exponentialverteilung", "Gleichverteilung", "Cauchy-Verteilung", "Binomialverteilung", "Poisson-Verteilung")) if(wahl==0) break switch(wahl, break, { cat("Bitte Mittel der Normalverteilung eingeben (Default: 0)!\n") mue<-c(scan(,0,n=1),0)[1] cat("Bitte Standardabweichung eingeben (Default: 1)!\n") sigma<-c(scan(,0,n=1),1)[1] if(sigma<=0){cat("ERROR: sigma nicht positiv!\n"); sigma<-1} realisiere.stpr<-"rnorm(n*runs,mue,sigma)" legend<-paste("NV(",mue,",",sigma,")",sep="") },{ cat("Bitte LAMBDA der Exponentialverteilung eingeben (Default: 1)!\n") lambda<-c(scan(,0,n=1),1)[1] if(lambda<=0){cat("ERROR: lambda nicht positiv!\n"); lambda<-1} realisiere.stpr<-"rexp(n*runs,lambda)" legend<-paste("Exp(",lambda,")",sep="") },{ cat("Bitte Untergrenze der Gleichverteilung eingeben (Default: 0)!\n") ug<-c(scan(,0,n=1),0)[1] cat("Bitte Obergrenze eingeben (Default: 1)!\n") og<-c(scan(,0,n=1),1)[1] if(og<=ug){cat("ERROR: Grenzen falsch!\n"); og<-1+ug<-0} realisiere.stpr<-"runif(n*runs,ug,og)" legend<-paste("U(",ug,",",og,")",sep="") },{ cat("Bitte Zentrum der Cauchy-Verteilung eingeben (Default: 0)!\n") mue<-c(scan(,0,n=1),0)[1] cat("Bitte Skalenparameter eingeben (Default: 1)!\n") sigma<-c(scan(,0,n=1),1)[1] if(sigma<=0){cat("ERROR: Skalenparameter nicht positiv!\n"); sigma<-1} realisiere.stpr<-"rcauchy(n*runs,mue,sigma)" legend<-paste("Cauchy(",mue,",",sigma,")",sep="") },{ cat("Bitte n der Binomialverteilung eingeben (Default: 1)!\n") nbin<-floor(c(scan(,0,n=1),1)[1]) cat("Bitte p eingeben (Default: 0.5)!\n") p<-c(scan(,0,n=1),0.5)[1] if(nbin<=0){cat("ERROR: n nicht positiv!\n"); nbin<-1} if(p<=0|p>=1){cat("ERROR: p falsch!\n"); p<-0.5} realisiere.stpr<-"rbinom(n*runs,nbin,p)" legend<-paste("Binom(",nbin,",",p,")",sep="") },{ cat("Bitte LAMBDA der Poisson-Verteilung eingeben (Default: 1)!\n") lambda<-c(scan(,0,n=1),1)[1] if(lambda<=0){cat("ERROR: lambda nicht positiv!\n"); lambda<-1} realisiere.stpr<-"rpois(n*runs,lambda)" legend<-paste("Poisson(",lambda,")",sep="") } ) # end of switch cat("Bitte Umfang der einzelnen Stichproben eingeben! (Default: 5)\n") n<-max(1,min(floor(c(scan(n=1),5)[1]),100000)) cat("Bitte Umfang der Wiederholungen eingeben! (Default: 100)\n") runs<-max(1,min(floor(c(scan(n=1),100)[1]),10000)) cat("Bitte Start des Zufallszahlengenerators eingeben! (Default: 13)\n") set.seed(max(1,min(floor(c(scan(n=1),13)[1]),999))) #:365 } #361: par(mfrow=c(1,1)) #:361 #:359 } #:358 #366: qq.x.model<-function(x,model,parameter){ #367: mods<-c("norm","exp","pois","geom","lnorm") if(missing(model)){ cat("Welches Modell?\n") wahl<-Menu(c("Normalverteilung", "Exponentialverteilung", "Poisson-Verteilung", "geometrische Verteilung", "Lognormalverteilung")) model<-mods[wahl] } model<-model[1] if(is.character(model[1])) model<-(1:length(mods))[mods==model] if(0==length(model) || 11 y<-y[h]/length(x) x<-as.numeric(names(y)) y<-log(y)+log(gamma(x+1)) plot(x,y,xlab="x",ylab="") r<-c(l1fit(x,y)$coef) abline(r) r<- c(-r[1],exp(r[2])) names(r)<-c("lambda.dach1","lambda.dach2") r } #:371 #372: geom.p.est<-function(x){ n<-length(x) yy_table(x); xx_as.numeric(names(yy)) yy_as.vector(yy); names(yy)_NULL plot(xx,log(yy/n),xlab="Wartezeit",ylab="log(n.i/n)") h_floor((length(yy))/2) abline(r_l1fit(xx[1:h],log(yy[1:h]/n))$coef) r_abs((0:1)-exp(r)) names(r)_c("p aus Achsenabschnitt","p aus Steigung") return(r) } #:372 #373: interval.est.lambda<-function(x){ cat("Belastungsrate im Zeitablauf\n") print("Geben Sie die Anzahl der Ereignisse an, die zusammen betrachtet") print("werden sollen! Es duerfen auch mehrere (maximal 9)") print("Anzahlen eingegeben werden. (Default: 5 10 20) Anzahlen=?") anz.set<-scan(,0,n=9); if(length(anz.set)==0) anz.set<-c(5,10,20) par(mfrow=matrix(c(1,1, 1,2, 1,3, 2,2, 2,3, 2,3, 3,3, 3,3, 3,3),2,9) [,length(anz.set)]) for(anz in anz.set){ if(all(x==sort(x))) h<-x else h<-cumsum(x) hx<-.5*(h[(1+anz):length(h)]+h[1:(length(h)-anz)]) hy<-anz/(h[(1+anz):length(h)]-h[1:(length(h)-anz)]) plot(hx,hy,type="l",xlab="time",ylab="Belastung") title(paste("anz =",anz)) } par(mfrow=c(1,1)) } #:373 #374: revbook.report<-function(){ repeat{ #375: auswahl<-c( "Abbruch/Ende", "leere Report", "fuege Text-Zeile an den Report an", "fuege Text-Zeile ein", "kopiere Plot in den Report", "entferne Zeilen aus Report", "zeige Roh-Report an", "verarbeite Report", "drucke Report" ) wahl<-Menu(auswahl,report=F) #:375 #376: switch(wahl, { break },{ #377: cat(" Revbook-Report leeren\n") cat("Sind Sie sicher, dass der alte Report \n") cat("geloescht werden soll? Fall ja j eingeben!\n") h<-paste(readline(),"n",sep="") if("j"==substring(h,1,1)){ unix("echo @ > revbookreport.rev",,F) cat(" Revbook-Report wurde geloescht\n") }else{ cat(" Revbook-Report wurde NICHT geloescht\n") } #:377 },{ #378: cat(" Revbook-Report um Textzeile verlaengern\n") cat("Geben Sie die Text-Zeile ein:\n") h<-readline() if(nchar(h)>0){ write(h,".tmp") unix(paste("cat .tmp >","> revbookreport.rev",sep="")) } else { unix(paste("echo @ >","> revbookreport.rev",sep="")) } #:378 },{ #379: cat("Textzeile in Revbook-Report einfuegen\n") cat("Geben Sie die Nummer der Zeile ein, hinter\n") cat("der die neue Zeile eingefuegt werden soll!\n") h<-readline() h<-substring(h,1:nchar(h),1:nchar(h)) no<-h[grep(c("0","1","2","3","4","5","6","7","8","9",),h)] if(length(no)>0){ no<-paste(no,collapse="") cat("Geben Sie die Text-Zeile ein:\n") h<-readline() if(nchar(h)>0){ unix(paste("head -n",no,"revbookreport.rev > .tmphead")) write(h,".tmp") eval(parse(text=paste("no<-1+as.numeric(no)"))) unix(paste("tail -n +",no," revbookreport.rev>.tmptail",sep="")) unix("cat .tmphead .tmp .tmptail > revbookreport.rev") } } else { cat("Es wurde keine Nummer eingegeben!\n") } #:379 },{ #380: cat("Plot in Report kopieren\n") cat("Geben Sie die Nummer der Zeile ein, hinter\n") cat("der der Plot eingefuegt werden soll!\n") h<-readline() h<-substring(h,1:nchar(h),1:nchar(h)) no<-h[grep(c("0","1","2","3","4","5","6","7","8","9",),h)] if(length(no)==0) no<-"9999" no<-paste(no,collapse="") cat("Geben Sie einen Namen fÏr das Bild ein!\n") h<-paste(readline(),".ps",sep="") if(nchar(h)>3){ dev.copy(postscript,file=h,horizontal=F, height=4,width=4) if(names(dev.cur())=="postscript") dev.off() h<-paste("{\\psfig{figure=",h,",height=5cm,width=5cm}}\n\n",sep="") h<-paste("\n\n\\centerline",h,sep="") write(h,".tmp") if(no!="9999"){ unix(paste("head -n",no,"revbookreport.rev > .tmphead")) eval(parse(text=paste("no<-1+as.numeric(no)"))) unix(paste("tail -n +",no," revbookreport.rev>.tmptail",sep="")) unix("cat .tmphead .tmp .tmptail > revbookreport.rev") } else { unix("cat .tmp >> revbookreport.rev") } } else { cat("Ohne Namen keine Kopie!\n") } #:380 },{ #381: cat("Zeilen aus Report entfernen\n") cat("Geben Sie die Nummer der ersten und die der\n") cat("letzten Zeile ein, die geloescht werden soll!\n") h<-readline() if(nchar(h)>0){ h<-substring(h,1:nchar(h),1:nchar(h)) no<-h[grep(c(" ","0","1","2","3","4","5","6","7","8","9",),h)] no[no==" "]<-"," no<-paste(no,collapse="") no<-eval(parse(text=paste("c(",no,",-1,-2)")))[1:2] if(no[1]>0){ if(no[2]<0) no[2]<-no[1] unix(paste("head -n",no[1]-1,"revbookreport.rev > .tmphead")) unix(paste("tail -n +",no[2]+1," revbookreport.rev>.tmptail",sep="")) unix("cat .tmphead .tmptail > revbookreport.rev") cat(paste("Report von Zeile",no[1],"bis",no[2],"geloescht\n")) } } #:381 },{ #382: cat(" Revbook-Report zeigen\n") unix("pr -n:3 revbookreport.rev|more",,F) #:382 },{ #383: cat("verarbeite Report\n") unix( "cat report.head > h.rev",,F) unix(paste("cat revbookreport.rev >","> h.rev",sep=""),,F) unix(paste("cat report.tail >","> h.rev",sep=""),,F) unix(paste("noweave -index -delay -filter /opt/revweb/lib/umlaute", "h.rev > h.tex"),,F) unix("echo q | latex h",,F) unix("dvips h",,F) cat("Anzeige des Reports mit dem Programm ghostview\n") cat("ENDE von ghostview: Taste Q \n") unix("ghostview h.ps",,F) #:383 },{ #384: cat("dps h.ps\n") #:384 } ) #:376 } invisible() } #:374 #385: select.spalte<-function(dm=rubber){ #386: cat("\n\n") cat("+-----------------------------------------------------------+\n") cat("|Programm zur Selektion eines Merkmals aus einer Datenmatrix|\n") cat("+-----------------------------------------------------------+\n\n") cat(" Mit diesem Programm koennen Sie aus der Datenmatrix\n") cat(" eine Merkmalsspalte auswaehlen.\n") cat(" Danach koennen Sie mittels eines zweiten Merkmals\n") cat(" die ausgewaehlte Spalte verkuerzen.\n") cat(" BITTE RETURN druecken \n\n") readline() if(is.list(dm)) dm<-dm[[1]] if(!is.matrix(dm)) dm<-cbind(dm) if(is.null(dimnames(dm))) dimnames(dm)<-list(NULL,1:ncol(dm)) if(0==length(dimnames(dm)[[2]])) dimnames(dm)[[2]]<-1:ncol(dm) nspalten<-ncol(dm) dm.out<-NULL #:386 #387: cat(paste(" Die Datenmatrix hat",nspalten,"Spalten.\n")) cat(" Hier ist die Liste der Spaltennamen mit den Spaltennummern:\n\n") print(rbind(dimnames(dm)[[2]])) cat("\n") cat(" Welche Spalte wollen Sie auswaehlen?\n") cat(" Geben Sie die Nummer der von Ihnen gewuenschten Spalte an!\n") wahl<-c(scan(,0,n=1),1)[1] wahl<-floor(wahl) wahl<-wahl[wahl<=nspalten & wahl>0] if(0==length(wahl)){ print("ERROR: Falsche Eingabe - ABBRUCH") break } dm.h<-dm[,wahl] #:387 #388: cat("\n") cat("Auswahl von Teilelementen der gerade gewaehlten Spalte\n") cat("------------------------------------------------------\n") cat(" Nun koennen Elemente der gewaehlte Spalte durch Festlegung\n") cat(" einer Bedingungen ausgewaehlt/ausgeschlossen werden.\n") cat("\n") cat(" Hier ist die Liste der Spaltennamen mit den Spaltennummern.\n\n") print(rbind(dimnames(dm)[[2]])) cat("\n") cat(" Welche Spalte wird fuer die Bedingung benoetigt?\n") cat(" Eine leere Eingabe fuehrt zu keiner (weiteren) Reduktion.\n") wahl<-scan(,0,n=1) if(length(wahl)>0){ wahl<-floor(wahl) wahl<-wahl[wahl<=nspalten & wahl>0] key<-dm[,wahl] cat("\n Hier ist ein Ausdruck der Spalte fuer die Bedingung:\n") print(key) cat(" Welchen Typ von Bedingung wuenschen Sie?\n") relation<-Menu(c("Bedingungs-Spalte < Zahl", "Bedingungs-Spalte = Zahl", "Bedingungs-Spalte > Zahl")) cat(" Die Vergleichszahl soll sein:\n") zahl<-scan(,0,n=1) cat("\n") switch(relation, log.vec<-key < zahl, log.vec<-key ==zahl, log.vec<-key > zahl) dm.h<-dm.h[log.vec] } #:388 #389: dm.out<-dm.h return(dm.out) #:389 } #:385 #390: select.and.split<-function(dm=rubber){ #391: cat("\n\n") cat("+--------------------------------------------------------------+\n") cat("|Programm zur Auswahl von Merkmalsspalten aus einer Datenmatrix|\n") cat("+--------------------------------------------------------------+\n\n") cat(" Mit diesem Programm koennen Sie aus der Datenmatrix eine Spalte\n") cat(" auswaehlen und dann mittels eines anderen Merkmals aufsplitten,\n") cat(" oder sie kÎnnen mehrere verschiedene Spalten auswaehlen.\n") cat(" BITTE RETURN druecken \n\n") readline() if(is.list(dm)) dm<-dm[[1]] if(!is.matrix(dm)) dm<-cbind(dm) if(is.null(dimnames(dm))) dimnames(dm)<-list(NULL,1:ncol(dm)) if(0==length(dimnames(dm)[[2]])) dimnames(dm)[[2]]<-1:ncol(dm) nspalten<-ncol(dm) #:391 #392: cat(paste(" Die Datenmatrix hat",nspalten,"Spalten.\n")) cat(" Hier ist die Liste der Spaltennamen mit den Spaltennummern:\n\n") print(rbind(dimnames(dm)[[2]])) cat("\n") cat(" Welche Spalte(n) wollen Sie auswaehlen?\n") cat(" Geben Sie die Nummer(n) der von Ihnen gewuenschten Spalte an!\n") wahl<-scan(,0) wahl<-floor(wahl) wahl<-wahl[wahl<=nspalten & wahl>0] if(0==length(wahl)){ print("ERROR: Falsche Eingabe - ABBRUCH") break } dm.h<-dm[,wahl] if(is.matrix(dm.h)) { if(is.null(dimnames(dm.h)[[2]])){ namen<-paste("vorher",wahl) } else { namen<-dimnames(dm.h)[[2]] } dm.h<-split(dm.h,col(dm.h)) names(dm.h)<-namen } #:392 #393: if(length(wahl)==1){ cat("\n") cat(" Nun koennen Elemente der gewaehlte Spalte gemaess den\n") cat(" Merkmalsauspraegungen einer anderen Spalte gesplittet werden.\n") cat("\n") cat(" Hier ist die Liste der Spaltennamen mit den Spaltennummern.\n\n") print(rbind(dimnames(dm)[[2]])) cat("\n") cat(" Welche Spalte soll zum Splitten ausgewaehlt werden?\n") cat(" Eine leere Eingabe fuehrt nicht zu einer Zerlegung.\n") wahl<-scan(,0,n=1) if(length(wahl)>0){ wahl<-floor(wahl) wahl<-wahl[wahl<=nspalten & wahl>0] if(wahl<=nspalten & wahl>0) { dm.h<-split(dm.h,dm[,wahl]) names(dm.h)<-names(table(dm[,wahl])) } } } #:393 #394: return(dm.h) #:394 } #:390 synchronize() detach("_Revbook") attach("_Revbook") print("Definition erfolgreich beendet - 02.6.97") #:256