Nothing
#0:
.Return<-function(title="Return!"){
.newl <- tktoplevel(); tkwm.geometry(.newl,"+0+0")
tkpack(tklabel(.newl,text=title))
tkbind(.newl,"<Return>",function(){
tkdestroy(.newl);
set.tclvalue<-function(name,value) tclvalue(name)<-as.character(value)
set.tclvalue("tvndone",2)
})
tkfocus(.newl); tkwait.variable("tvndone")
"ok"
}
#:0
#1:
print("robj - Version: 041222: Objekte einrichten")
#2:
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))
#:2
#3:
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)
#:3
#4:
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))
#:4
#5:
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)
#:5
#6:
# Kuckuckseier
kuckuckseier<-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
SO4.76<-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
SO4<-list("1976"=SO4.76,
"1977"=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),
"1978"=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))
# Datensatz zu den norwegischen Seen
norwegen<-
list("1976" = structure(.Data = c(432,497,458,472,453,496,531,542,487,
587,627,667,538,560,493,597,623,615,482,542,531,599,488,
485,597,605,643,629,564,480,740,370,270,380,840,160,250,
760,160,150,140,580,400,510,510,150,280,300,70,210,190,
160,550,160,580,140,160,220,29000,29000,16000,18000,17000,
38000,5000,32000,13000,9000,1000,2000,5000,3000,7000,6000,
5000,10000,10000,4000,2000,1000,14000,9000,6000,5000,3000,
4000,4000,52,203,66,59,51,222,53,69,222,78,115,247,210,
186,145,219,156,200,44,32,69,69,36,170,83,291,144,173,
118),.Dim = c(29,4)),"1977" = structure(.Data = c(423,474,455,481,
470,535,514,515,476,595,628,644,532,610,494,602,634,623,
477,482,577,610,499,465,582,597,637,679,570,650,760,420,
270,370,910,260,270,910,240,130,160,620,390,570,580,150,
170,190,180,190,190,150,590,160,690,100,140,230,57000,
41000,39000,17000,12000,59000,10000,13000,13000,12000,2000,
3000,12000,5000,11000,13000,6000,3000,15000,36000,9000,4000,
13000,14000,19000,10000,8000,4000,4000,62,195,52,50,46,288,
66,62,228,104,97,114,220,224,156,228,153,96,36,55,57,76,
22,165,91,279,111,239,93),.Dim = c(29,4)),"1978" = structure(
.Data = c(440,498,457,483,464,554,491,523,487,559,617,628,
533,557,491,571,620,607,509,534,560,599,486,477,590,578,
640,648,577,460,680,330,230,360,880,180,280,960,260,190,
180,590,490,540,500,140,190,150,150,130,150,170,570,140,
590,60,100,220,29500,18000,20000,6000,17000,35000,6000,13000,
12500,18500,1500,1000,4500,16500,8000,5000,2000,1500,10000,
6000,2000,1000,16500,15000,6500,7000,2000,8000,2500,55,195,
44,43,49,267,47,66,230,105,114,118,194,225,144,206,186,
204,41,58,66,80,33,165,96,264,70,147,116),.Dim = c(29,4)),
"1981" = structure(.Data = c(449,521,469,490,454,575,543,519,
490,602,625,667,521,598,493,567,629,568,545,554,555,613,
492,484,617,575,598,672,529,360,560,290,210,380,870,150,
290,760,200,170,180,540,430,430,420,160,180,170,150,160,
170,190,480,180,580,200,200,210,22000,12000,11000,7000,
20000,37000,5000,16000,12000,6000,1000,1000,5000,6000,7000,
5000,4000,20000,10000,5000,1000,1000,13000,16000,4000,5000,
1000,3000,1000,47,164,51,39,45,252,67,66,187,78,104,234,
179,218,126,185,154,268,32,48,64,66,25,130,89,124,116,
267,79),.Dim = c(29,4)))
norwegen<-lapply(norwegen,"*",0.01)
# Stahlhaerte in Rockwell-Einheiten
stahlhaerte.in.rockwell<-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)
# 50 Ausspielungen des Lottospiels 6 aus 49
lotto.50.results<-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
verkaeufe<-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
lotto.freqs<-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(lotto.freqs)<-as.character(1:49)
# Warten auf das erste Tor bei Fussballspielen
wait.for.first.soccer.goal<-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
betriebe.flaeche<-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
year.of.death.and.age<-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
steuer.kriminalitaet<-matrix(c(2,26,7,13,11,6,9,15,5,9,9,3),3,4)
# PS und SH
ps.sh<-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
persons.per.time<-c(65,137,140,85,48,18,7)
# Kinobesuche
cinema.visitors<-list(0:6,
c(6,8,8,11,14,11,2),
c(5,7,12,12,12,7,5))
# radioaktiver Zerfall
zerfaelle<-list(0:14,
c(57,203,383,525,532,408,273,139,45,27,10,4,0,1,1))
# Kriege
kriege<-list(0:4,c(223,142,48,15,4))
# Verpackungsmaschinen - Tueten
tueten<-matrix(c(5,15,30,40,10,36,60,56,32,16),5,2)
# Wahrscheinlichkeitsfunktion 2-Dim.
ws.fkt<-0.01*matrix(c(2,6,7,7,5,6,6,9,10,8,6,5,12,7,2,2),4,4)
# S-DATEN
rubber <- structure(.Data = list(hardness = c(45, 55, 61, 66, 71,
71, 81, 86, 53, 60, 64, 68, 79, 81, 56, 68, 75, 83, 88, 59,
71, 80, 82, 89, 51, 59, 65, 74, 81, 86), tensile.strength =
c(162, 233, 232, 231, 231, 237, 224, 219, 203, 189, 210, 210,
196, 180, 200, 173, 188, 161, 119, 161, 151, 165, 151, 128,
161, 146, 148, 144, 134, 127), abrasion.loss = c(372, 206,
175, 154, 136, 112, 55, 45, 221, 166, 164, 113, 82, 32, 228,
196, 128, 97, 64, 249, 219, 186, 155, 114, 341, 340, 283, 267,
215, 148), ts.low = c(-18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -7, 0, -19, -61, -19, -29, -15, -29, -52, -19, -34, -32,
-36, -46, -53), ts.high = c(0, 53, 52, 51, 51, 57, 44, 39, 23,
9, 30, 30, 16, 0, 20, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0)), class = "data.frame", row.names = 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"))
corn.rain <- structure(.Data =
c(9.6, 12.9, 9.9, 8.7, 6.8, 12.5, 13, 10.1, 10.1, 10.1,
10.800000000000002, 7.8, 16.2, 14.1, 10.6, 10, 11.5, 13.6,
12.1, 12, 9.3, 7.7, 11, 6.9000000000000016, 9.5, 16.5, 9.3,
9.4, 8.7, 9.5, 11.6, 12.1, 8, 10.7, 13.9, 11.300000000000002,
11.6, 10.4), .Tsp = c(1890, 1927, 1))
rain.nyc1 <- structure(
.Data = c(43.6, 37.8, 49.2, 40.3, 45.5, 44.2, 38.6, 40.6,
38.7, 46, 37.1, 34.700000000000004, 35, 43, 34.4, 49.7, 33.5,
38.3, 41.7, 51, 54.4, 43.7, 37.6, 34.1, 46.6, 39.3,
33.700000000000004, 40.1, 42.4, 46.2, 36.8, 39.4, 47, 50.3,
55.5, 39.5, 35.5, 39.4, 43.8, 39.4, 39.9, 32.700000000000004,
46.5, 44.2, 56.1, 38.5, 43.1, 36.7, 39.6, 36.9, 50.8, 53.2,
37.8, 44.7, 40.6, 41.7, 41.4, 47.8, 56.1, 45.6, 40.4, 39,
36.1, 43.9, 53.5, 49.8, 33.799999999999996, 49.8, 53, 48.5,
38.6, 45.1, 39, 48.5, 36.7, 45, 45, 38.4, 40.8, 46.9, 36.2,
36.9, 44.4, 41.5, 45.2, 35.6, 39.9, 36.2, 36.5), .Tsp = c(
1869, 1957, 1))
corn.yield <- structure(.Data = c(24.5,
33.700000000000004, 27.9, 27.5, 21.7, 31.9, 36.8, 29.9, 30.2,
32, 34, 19.4, 36, 30.2, 32.4, 36.4, 36.9, 31.5, 30.5,
32.299999999999996, 34.9, 30.1, 36.9, 26.8, 30.5,
33.299999999999996, 29.7, 35, 29.9, 35.200000000000004, 38.3,
35.200000000000004, 35.5, 36.7, 26.8, 38, 31.7, 32.6), .Tsp
= c(1890, 1927, 1))
rain.nyc2 <- structure(.Data = c(48.1,
42.4, 48.8, 45.8, 40, 39.8, 45.2, 47.4, 40.9, 46.7, 36.2,
37.3, 40.4, 46.6, 38.8, 55.3, 42.1, 46.7, 46.6, 53, 58.7,
52.3, 41.4, 38.9, 53, 44.2, 35.700000000000004, 38, 44.3,
45.1, 42.1, 41.8, 47.1, 47.1, 48.6, 41.6, 44.5, 41.8, 45.3,
41.4, 41.6, 36, 40.3, 38.5, 44.4, 33.5, 40.8,
33.200000000000004, 39.3, 33.6, 48.4, 48.8, 34.4, 43.4, 36.7,
37.7, 36.5, 49.7, 49.9, 40.7, 39.1, 35.299999999999996, 35.5,
38.8, 49.7, 45, 32.6, 46.3, 48.1, 46.5, 35.700000000000004,
45, 36.2, 49.6, 40.5, 51.7, 45.7, 39, 48.8, 54.2,
34.700000000000004, 38.7, 45.2, 46.7, 46.3, 38.1, 42.8, 40.6,
33.299999999999996), .Tsp = c(1869, 1957, 1))
#:6
#7:
"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")
#:7
#8:
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")))
#:8
#9:
"frabo04" <-
structure(c(1, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2,
2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2,
1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2,
2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2,
2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1,
2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2,
2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2,
2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1,
1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 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, 1, 1, 1, 2, 2, 2, 1,
2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1,
1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2,
2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1,
1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 160, 167, 184, 173,
190, 170, 170, 180, 166, 173, 160, 185, 160, 178, 186, 166, 184,
180, 173, 190, 170, 156, 160, 169, 158, 163, 170, 162, 188, 171,
160, 160, 161, 165, 175, 170, 166, 171, 170, 168, 191, 162, 175,
174, 170, 185, 182, 183, 184, 160, 183, 182, 185, 192, 172, 183,
180, 155, 174, 174, 176, 170, 189, 156, 182, 180, 186, 190, 168,
155, 168, 182, 180, 187, 166, 173, 180, 193, 166, 180, 183, 178,
156, 166, 172, 172, 170, 183, 185, 179, 179, 180, 179, 175, 165,
180, 187, 178, 190, 180, 173, 175, 185, 196, 194, 189, 165, 186,
190, 168, 170, 176, 179, 182, 184, 183, 185, 185, 178, 195, 179,
177, 179, 175, 162, 170, 178, 179, 178, 160, 160, 172, 187, 178,
189, 186, 188, 182, 172, 180, 176, 176, 193, 184, 168, 173, 174,
184, 176, 168, 169, 168, 186, 175, 176, 181, 175, 172, 170, 192,
170, 179, 172, 173, 185, 188, 174, 181, 187, 185, 188, 179, 165,
176, 195, 194, 183, 178, 161, 184, 194, 180, 175, 180, 170, 183,
180, 168, 161, 160, 182, 182, 181, 165, 189, 167, 185, 190, 190,
158, 165, 176, 184, 174, 163, 160, 165, 168, 170, 190, 176, 178,
185, 188, 159, 176, 180, 186, 187, 178, 189, 170, 175, 190, 183,
172, 187, 175, 182, 187, 185, 197, 174, 170, 163, 182, 189, 180,
177, 181, 173, 167, 159, 160, 187, 185, 182, 160, 189, 185, 175,
171, 176, 200, 187, 183, 172, 180, 172, 181, 175, 170, 175, 171,
189, 199, 186, NA, 175, 170, 180, 187, 200, 178, 195, 188, 190,
168, 171, 173, 171, 188, 186, 194, 172, 187, 165, 172, 173, 175,
187, 189, 182, 173, 166, 172, 174, 170, 200, 172, 180, 178, 172,
166, 173, 179, 172, 158, 147, 175, 167, 165, 178, 172, 153, 192,
165, 174, 182, 176, 184, 200, 189, 177, 192, 44, 74, 75, 75,
95, 76, 64, 80, 57, 74, 60, 90, 65, 75, 80, 60, 73, 72, 52, 90,
75, 51, 46, 63, 52, 56, 60, 55, 65, 55, 54, 60, 50, 53, 57, NA,
54, 50, 64, 50, 104, 53, 60, 60, 47, 75, 65, 70, 83, 56, 83,
69, 85, 92, 54, 70, 80, 44, 68, 65, 70, 60, 79, 47, 86, 72, 96,
85, NA, NA, 68, 78, 74.5, 80, 53, 58, 173, 74, 62, 87, 74, 95,
51, 50, 52, 56, 58, 75, 83, 64, 66, 75, 67, 65, 57, 90, 81, 65,
82, 71, 73, 83, 91, 100, 89, 77, 56, 75, 83, 66, 60, 78, 79,
75, 81, 81, 80, 115, 83, 105, 75, 65, 76, 66, 110, 56, 70, NA,
76, 53, 55, 72, 87, 67, 78, 76, 77, 78, 75, 81, 68, 73, 90, 77,
55, 65, 82, 73, 70, 54, 70, 65, 92, 65, 70, 76, 64, 64, 60, 100,
75, 75, NA, 72, 80, 105, 57, 75, 85, 86, 77, 70, 52, 62, 79,
79, 85, 85, 47, 81, 91, 74, 65, 65, 62, 72, 34, 56, 50, 51, 70,
73, 70, 50, 86, 65, 85, 75, 80, 58, 70, 63, 67, 60, 60, 47, 55,
64, 65, 88, 74, 71, 95, 90, 52, 58, 69, 71, 81, 84, 85, 62, 68,
80, 90, 63, 80, 77, 90, 70, 80, 88, 63, 75, 70, 70, 81, 90, 67,
78, 62, 51, 75, 50, 75, 72, 76, 52, 85, 75, 80, 66, 60, 80, 80,
82, 61, 70, 60, 72, 80, 49, 75, 80, 82, 95, 82, 67, 60, 65, 80,
89, 73, 65, 95, 79, 85, 57, 68, 55, 58, 96, 75, 95, 63, NA, 56,
55, 65, 71, 82, 65, 72, 67, 62, 68, 62, 70, 96, 58, 60, NA, 56,
58, 63, 64, 59, 50, 42, 62, 90, 53, 73, 62, 47, 64, 73, 68, 95,
58, 68, 99, 83, 71, 80, 19, 24, 22, 25, 20, 21, 20, 22, 20, 24,
26, 21, 19, 21, 19, 24, 22, 19, 20, 21, 22, 23, 21, 27, 24, 21,
26, 24, 20, 20, 21, 22, 24, 24, 21, 22, 20, 19, 20, 20, 19, 33,
20, 27, 20, 21, 24, 24, 23, 24, 25, 24, 21, 21, 26, 19, 20, 27,
25, 19, 20, 19, 20, 20, 23, 24, 22, 16, 20, 20, 20, 20, 22, 24,
20, 20, 21, 19, 19, 22, 21, 28, 22, 23, 22, 19, 20, 22, 25, 20,
21, 20, 19, 20, 20, 21, 20, 20, 24, 20, 26, 21, 23, 20, 20, 21,
20, 20, 21, 23, 21, 25, 22, 19, 22, 24, 20, 27, 20, 25, 22, 20,
20, 21, 22, 24, 23, 20, 23, 20, 21, 20, 22, 22, 20, 23, 22, 22,
26, 23, 20, 20, 25, 21, 21, 22, 25, 22, 22, 19, 20, 21, 41, 24,
25, 20, 22, 24, 19, 22, 19, 21, 21, NA, 21, 24, 19, 24, 22, 20,
20, 21, 19, 19, 21, 23, 21, 21, 27, 21, 20, 20, 19, 20, 20, 20,
22, 21, 19, 19, 22, 20, 20, 21, 23, 19, 22, 21, 19, 19, 19, 20,
20, 21, 20, 23, 25, 22, NA, 22, 25, 25, 20, 20, 20, 20, 19, 24,
21, 21, 25, 22, 21, 20, 24, 21, 21, 28, 19, 20, 20, 24, 24, 21,
20, 20, 20, 24, 21, 20, 27, 20, 24, 21, 21, 20, 22, 24, 22, 24,
23, 20, 22, 20, 21, 21, 21, 21, 22, 23, 23, 21, 19, 25, 20, 24,
24, 21, 19, 19, 19, 21, 23, 20, 20, 21, 22, 20, 20, 20, 19, 22,
22, 19, 22, 20, 21, 22, 20, 19, 19, 19, 19, 20, 22, 23, 19, 19,
21, 24, 20, 23, 20, 23, 29, 20, 19, 23, 26, 23, 22, 21, 25, 23,
26, 20, 23, 20, 21, 21, 21, 21, 20, 21, 20, 2, 3, 2, 1, 2, 1,
3, 2, 3, 1, 2, 3, 3, 2, 2, 3, 2, 2, 3, 5, 5, 2, 1, 2, 1, 2, 3,
1, 1, 3, 1, 1, 1, 1, 2, 2, 3, 2, 3, 2, 2, 2, 5, 1, 5, 2, 2, 1,
2, 1, 2, 3, 2, 2, 1, 2, 3, 1, 1, 2, 1, 3, 1, 1, 2, 2, 3, 2, 3,
5, 4, 2, 2, 2, 3, 2, 2, 3, 3, 3, 3, 2, 1, 1, 3, 2, 2, 3, 2, 2,
3, 3, 2, 2, 2, 2, 3, 3, 2, 2, 1, 1, 2, 3, 2, 2, 2, 2, 3, 1, 2,
1, 5, 2, 3, 3, 2, 2, 1, 2, 3, 2, 2, 2, 3, 3, 3, 2, 3, 2, 3, 2,
1, 2, 4, 5, 3, 2, 3, 2, 2, 1, 3, 2, 2, 3, 4, 1, 2, 3, 3, 3, 3,
1, 2, 1, 3, NA, 3, 2, 1, 5, 4, 2, 3, 2, 2, 2, 3, 2, 2, 3, 2,
2, 5, 2, 2, 2, 3, 1, 2, 1, 3, 3, 1, 2, 1, 3, 2, 2, 3, 5, 2, 2,
2, 2, 2, 3, 3, 2, 3, 3, 2, 3, 3, 2, 2, 2, 3, 2, 2, 1, 3, 2, 2,
2, 1, 2, 1, 3, 3, 3, 2, 2, 1, 2, 2, 5, 5, 3, 2, 1, 1, 2, 1, 5,
3, 3, 2, 3, 2, 2, 3, 3, 3, NA, 2, 1, 1, 2, 3, 3, 3, 2, 2, 3,
3, 4, 3, 2, 3, 2, 2, 2, 2, 2, 2, 5, 3, 2, 1, 3, 3, 3, 2, 2, 2,
2, 3, 3, 3, 1, 3, 3, 2, 2, 2, 3, 2, 1, 3, 3, 3, 1, 3, 2, 4, 2,
2, 3, 2, 3, 3, 3, 3, 2, 2, 1, 1, 1, 2, 1, 3, 1, 3, 3, 1, 3, 2,
2, 2, 3, 2, 3, 2, 30, 30, 1, 5, 5, 5, 35, 5, 50, 5, 10, 7, 45,
2, 3, 25, 8, 4, 30, 5, 1, 20, 50, 20, 15, 15, 30, 50, 10, 40,
NA, 50, 51, 35, 50, 50, 60, 40, 50, 60, NA, 25, 20, 15, 25, 5,
5, 10, 5, 36, 8, 30, 6, 20, NA, 12, 3, 30, 3, 30, 5, 30, 4, NA,
2, 2, 1.5, 5, 25, 30, 25, 3, 7, 5, 35, 25, 10, 6, 40, 0.6, 7,
0.5, 10, 30, 35, 30, 45, 2, 3, 25, 5, 8, 3, 5, 40, 20, 20, 35,
2, 8.4, 7, 3, 5, 0.5, 7, 6, 50, 15, 12, 30, 20, 5, 3.5, 4, 4.5,
8, 3, 5, 15, 6, 8, 45, 5, 5, 30, 30, 5, 3, 2, 40, 50, 25, 0.1,
6, 1.5, 3, 5, 5, 1, 5, 4, 3, 0.4, 7, 25, 30, 3, 5, 1, 50, 40,
20, 5, 7, 30, 3, 4, NA, 40, 5, 5, 4, 5, 4, 4, 3, 30, 7, 13, 7,
10, 3, 25, 6, 5, 1, 3, 5, 40, 7, 4, 30, 3, 5, 10, 6, 5, 20, 30,
60, 14, 3, 4, 35, 10, 40, 3, 4, 4, NA, 40, 25, 10, 40, 20, 40,
NA, 60, 4, 1, 2, 6, 1, 7, 40, 40, 5, 7, 30, 15, 4, 3, 5, 1.5,
5, 47, 4, 25, 5, 4, 2, 4, 4, 7, NA, 5, 5, 5, 6, 3, 0.3, 15, 16,
15, 5, 5, 25, 15, 9, 10, 5, 30, 40, 5, 5, 3, 50, 5, 35, 35, 50,
30, 45, 4, 4, 2, 3, 20, 50, 50, 5, 4, 8, 15, 7, 9, 8, 25, 31,
28, 26, 0.3, 3, 0.8, 5, 15, 30, 40, 5, 15, 2, 5, 8, 50, 40, 25,
30, 25, 2.5, 40, 40, 30, 40, 60, 40, 3, 30, 75, NA, 5, 45, 70,
4, 25, 53, 3, NA, 5, 5, 5, 3, 0.4, 4.5, 5, 6, 38, 38, 44, 41,
45, 41, 40, 43, 40, 41, 38, 46, 38, 43, 47, 39, 44, 42, 40, 46,
42, 38, 37, 40, 38, 37, 38, 37, 44, 41, 40, 37, 36, 38, 38, 40,
38, 39, 39, 37, 47, 37, 39, 41, 39, 44, 41, 42, 44, 38, 44, 41,
46, 46, 41, 43, 43, 35, 43, 43, 42, 39, 47, 37, 43, 42, 46, 49,
39, 36, 40, 44, 42, 44, 39, 39, 42, 48, 40, 43, 44, 43, 35, 37,
38, 39, 40, 43, 43, 41, 43, 45, 43, 42, 40, 44, 45, 40, 43, 43,
42, 41, 43, 45, 43, 45, 39, 45, 45, 39, 38, 44, 43, 44, 43, 44,
44, 45, 43, 45, 44, 40, 42, 42, 38, 41, 43, 43, 42, 38, 38, 39,
46, 43, 45, 43, 47, 44, 41, 45, 42, 43, 46, 44, 38, 40, 43, 44,
42, 39, 39, 40, 43, 40, 42, 44, 42, NA, 39, 46, 43, 42, 44, 43,
46, 46, 38, 45, 46, 46, 45, 43, 40, 41, 44, 46, 44, 45, 37, 44,
48, 44, 42, 43, 43, 44, 42, 38, 37, 37, 42, 43, 44, 37, 44, 41,
45, 44, 42, 38, 37, 41, 42, 39, 39, 38, 38, 41, 43, 46, 42, 43,
46, 44, 37, 39, 42, 45, 44, 45, 46, 42, 43, 45, 43, 38, 45, 40,
44, 43, 42, 46, 43, 43, 39, 42, 44, 43, 45, 45, 42, 39, 37, 39,
44, 46, 45, 37, 46, 45, 43, 42, 39, 48, 44, 45, 39, 43, 39, 40,
38, 38, 40, 44, 46, 48, 41, 40, 41, 40, 42, 46, 48, 43, 45, 45,
46, 39, 39, 39, 38, 40, 43, 46, 42, 45, 38, 39, 41, 42, 44, 45,
46, 41, 38, 40, 40, 41, 47, 41, 39, 40, 38, 39, 40, 43, 41, 37,
35, 41, 41, 38, 44, 38, 37, 46, 40, 42, 43, 41, 44, 47, 45, 44,
46, 0, 2, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 2, NA, 0, 0, 1, 1, 1, 1, 0,
0, 0, 6, 1, 3, 0, 0, 1, 2, 0, 1, 0, 0, 1, 1, 0, 1, 2, 0, 0, 2,
0, 0, 0, 0, 0, 1, 1, 0, 1, 2, 1, 0, 0, 1, 1, 2, 0, 0, 1, 1, 1,
2, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 2, 1, 1, 1, 1, 0, 1, 0, 2, 0,
1, 2, 0, 1, 2, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1,
NA, 1, 1, 0, 1, 0, 1, 0, 2, 0, 1, 0, 1, 2, 1, 1, 1, 1, 6, 0,
0, 0, 0, 0, 1, 0, 0, 1, 0, 3, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0,
0, 2, 2, 0, 2, 1, 1, 0, 0, 2, 0, 0, 0, 2, 1, 1, 0, 1, 1, 0, 1,
0, 1, 1, 1, 0, 0, 0, 1, NA, 0, 0, 0, 1, 2, NA, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 0, 0, 2, 1, 1, 4, 2, 0, 2, 1, 1, 0, 0, 2, 0,
0, 1, 1, NA, 0, 0, 1, NA, 0, 2, 2, 0, 1, 1, 1, 0, 0, 0, 0, 0,
1, 1, 1, NA, 0, 1, 0, 0, 0, NA, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0,
1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 2, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0,
1, 1, 2, 0, 1, 2, 1, 2, 1, 1, 0, 1, 1, 1, 2, 2, 1, 0, 0, 0, 0,
2, 0, 1, 0, 0, 0, 0, 0, 3, 0, 0, 2, 0, 1, 0, 0, 2, 1, 0, 1, 2,
0, 0, 1, 1, 1, 0, 2, 0, 3, 2, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 2,
1, 0, 0, 1, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 1, 1,
0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 2,
1, 1, 0, 0, 1, 1, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
0, 0, 1, 1, 1, 0, 0, 0, 0, 2, 0, 1, 0, 2, 0, 0, 1, 1, 1, 0, 1,
1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 1, 0, 3, 1, 1, 0, 3, 0, 0, 2, 3, 0, 0, 1, 1, 0, 0, 0, 1,
1, 1, 0, 1, 0, NA, 2, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1,
0, 1, 1, 1, 1, 0, 0, 2, 0, 0, 0, 1, 3, 1, 0, 0, 0, NA, 1, 2,
1, 0, NA, 0, 1, NA, 1, 0, 0, NA, 2, 0, 0, 1, 1, 0, 0, 2, 1, 0,
0, 1, 1, 2, 1, 1, NA, 0, 2, 2, 0, 1, 3, 1, 1, 0, NA, 1, 3, 0,
2, 1, 1, 1, 1, 0, 0, 1, NA, 0, 0, 0, 1, 2, 0, 1, 1, 0, 0, 0,
0, 0, 1, 0, 0, 0, 0, 3, 1, 1, 1, 1, 2, 0, 2, 1, 0, NA, 1, 1,
0, 2, 0, 2, 0, 1, 1, 0, 0, 1, NA, 0, 1, 2, 1, 0, 6, 0, 2, 0,
1, 0, 2, 1, 2, 0, 1, 1, 1, 1, 0, 2, 0, 164, 169, 168, 160, 175,
160, 170, 150, 157, 160, 157, 155, 158, 165, 176, 172, 170, 164,
168, 165, 160, 154, 157, 160, 160, 160, 168, 165, 175, 167, 160,
162, 160, 162, 165, 160, 169, 166, 158, 163, 164, 157, 176, NA,
166, 172, 173, 178, 174, 165, 160, 169, 160, 184, 160, 160, 160,
150, 163, 171, 159, 164, 169, 152, 170, 169, 165, 170, 163, 154,
NA, 170, 159, 172, 160, 172, 175, 175, 160, 172, 170, 169, 162,
165, 165, 170, 170, 170, 174, 178, 163, 170, 170, 169, 170, 160,
169, 165, 160, 169, 165, 160, 175, 177, 178, 175, 165, 157, 175,
165, 160, 164, 155, 165, 168, 165, 170, 173, 165, 171, 162, 163,
163, 163, 167, 172, 170, 159, 164, 159, 162, 175, 165, 170, 176,
172, 172, 176, 164, 170, 158, 160, 169, 175, 165, 168, 164, 160,
165, 162, 168, 168, 165, 155, 165, 159, 162, 153, 168, 162, 160,
165, 165, 162, 170, 173, 169, 168, 165, 160, 163, 170, 163, 160,
182, 153, 167, 165, 162, 165, 174, 155, 165, 175, 150, 161, 160,
160, 165, 163, 164, 167, 170, 173, 168, NA, 175, 175, 174, 163,
163, 168, 172, 165, 156, 165, 163, 166, 165, 170, 165, 164, 165,
180, 160, 173, 155, 165, 172, 162, 172, 166, 165, 170, 173, 162,
170, 160, 160, 174, 165, 176, 156, 160, 158, 167, 172, 170, 164,
160, 171, 168, 163, 164, 170, 165, 178, 168, 165, 168, 163, 160,
168, 165, 165, 160, 163, 165, 166, 165, 160, 170, 165, 166, 170,
150, 150, 165, 175, 160, 160, 160, 170, 165, 170, 167, 168, 170,
168, 162, 174, 155, NA, 175, 168, 172, 150, 164, 165, 158, 175,
178, 172, 165, 156, 169, 165, 165, 169, 165, 169, 175, 160, 165,
168, 162, 164, 156, 180, 162, 163, 150, 165, 165, 157, 180, 170,
156, 165, 150, 160, 188, 160, 160, 174, 172, 175, 170, 190, 170,
175, 175, 160, 175, 171, 160, 184, 185, 175, 185, 174, 186, 179,
184, 180, 170, 170, 171, 182, 175, 169, 180, 173, 183, 193, 180,
172, 170, 178, 173, 180, 189, 175, 174, 175, 170, 167, 180, NA,
192, 176, 175, 180, 180, 170, 170, 180, 188, 184, 170, 170, 180,
170, 168, 180, 172, 185, 183, 174, 184, 173, 180, 195, 180, 165,
185, 190, 175, 185, 185, 185, 170, 195, 185, 185, 184, 181, 182,
176, 175, 190, 185, 183, 175, 185, 177, 180, 175, 172, 187, 189,
169, 190, 195, 186, 172, 170, 180, 192, 190, 186, 190, 186, 180,
180, 182, 173, 170, 175, 164, 191, 180, 173, 164, 193, 180, 190,
184, 169, 176, 182, 180, 185, 175, 175, 178, 178, 185, 176, 181,
180, 180, 178, 166, 178, 170, 160, 178, 183, 185, 186, 172, 180,
187, 185, 175, 175, 175, 172, 183, 175, 177, 180, 188, 188, 170,
177, 170, 183, 193, 185, 178, 181, 190, 190, 183, 176, 175, 168,
182, 189, 179, 178, 169, 181, 183, 178, 178, 188, 170, 178, 170,
184, 170, NA, 181, 182, 170, 165, 172, NA, 175, 180, 178, 175,
170, 178, 178, 181, 185, 168, 168, 182, 170, 185, 172, 176, 130,
180, 175, 186, 170, 172, 180, 180, 181, 177, 168, 180, 178, 175,
182, 184, 165, 180, 175, 180, 169, 180, 185, 182, 175, 180, 172,
174, 168, 180, 175, 170, 182, 184, 180, 172, 187, 185, 197, 195,
185, 185, 189, 185, 193, 175, 170, 180, 190, 175, 175, 183, 187,
185, 170, 171, 183, 180, 171, 190, 185, 185, 182, 182, 185, 168,
178, 182, 184, 182, 180, 190, 175, 186, 175, 185, 163, 178, 180,
183, 171, 178, 180, 175, 175, 180, 197, 185, 177, 173, 185, 165,
176, 191, 185, 172, 175, 183, 172, 160, 185, 179, 162, 185, 165,
173, 175, 177, 186, 185, 190, 176, 178, 3, 20, NA, 8, 6, 11,
3, 7, 27, 3, 3, 1, 4, 13, 88, 36, 74, 8, 6, 8, 5, 8, 3, 12, 6,
10, 100, 8, 22, NA, 3, 6, 7, 7, 18, NA, 2, 3, 13, 7, NA, 9, 18,
9, 7, 5, 13, 3, 4, 8, 12, NA, 18, NA, 7, 26, 7, 13, 7, 11, 17,
4, 9, 2, 12, NA, 13, 14, 23, 3, 7, 11, NA, 69, 12, 6, 21, 7,
13, 13, 12, 7, 1, 5, 8, 29, 7, 7, 25, 6, 6, 13, 2, 7, 7, 6, 28,
7, 8, 2, 7, 13, 69, 7, 9, NA, 8, 3, 4, 13, 10, 6, 12, 8, NA,
NA, 8, 77, 21, 79, 7, 8, 7, 7, 9, 44, 8, 2.375, 6, NA, 8, 7,
11, 17, NA, 12345, 376, 7, 2, 69, 7, 17, 12, 8, 7, 13, NA, 11,
13, 3, 2, 4, NA, 6, 19, 13, 13, NA, 8, 23, 12, 2, 4, 7, 5, 6,
2, 5, 9, 13, 12, 4, 9, 8, 8, 1, 1, 5, 7, 4, 25, 14, 12, 4, 7,
17, 22, 27, 3, 13, 21, 25, 7, 7, 5, NA, 4, 26, 17, NA, 8, 18,
5, 7, 10, 13, 3, 3, 666, 32, 11, 7, 10, 5, 2, 10, 7, NA, 4, 21,
19, 2, 1, 4, 7, 1, 5, NA, 666, 5, 666, 12, 10, 13, 3, 23, 23,
17, 25, 7, 8, 67, 13, 7, 13, 6, 13, 6, 8, 9, 1, 17, 3, 44, 4,
17, 16, 7, NA, 8, 13, 8, 7, 7, NA, 7, NA, 9, 16, 13, 6, 8, 17,
14, 50, 9, 7, 16, 13, 7, 8, NA, 7, 23, 13, 1, 1, 7, 7, 23, NA,
13, 13, 30, 8, 7, 9, 3, 83, 17, 2, 4, 269, 14, 10, 9, 3, 3, 3,
16, 12, 11, 4, 7, 3, 273, NA, 1, 7, 7, 11, 14, 23, 7, 9, 1, 2,
2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2,
2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1,
2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2,
1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2,
2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1,
1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1,
2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2,
2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2,
2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2,
2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2,
2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1,
1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2,
2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 60, 14000, 600, 50, 3, 30, 60, 2, 1,
90, 250, 30, 1200, 1500, 0, 500, 600, 5, 550, 550, 50, 1300,
1000, 3400, NA, 3400, 0, NA, 650, 20, 10, 80, 600, 200, 2000,
NA, 16, 120, 960, 500, NA, NA, NA, 0, 500, 190, 1000, 100, 50,
3000, 30, 2000, 200, NA, 85, 40, 1800, 80, 80, 4, 30, 11, 1500,
12, 1, 1, 15, 8, 500, 3000, NA, 30, 0, 21, 700, 800, 4, 8, 16,
100, 4, 6000, NA, NA, 1000, 250, 800, 100, NA, 12, 0, NA, 900,
150, 6, 2500, 2, 2000, 20, 12, 10, 2300, 6, 25, 10, 30, 250,
3000, 4200, NA, 1200, 2, 200, 100, 3, 200, 800, 0, 20, 18000,
1500, 1000, 5, 10, 20, 30, 55, 25, 10, NA, 1500, 500, 0, 32,
6500, 300, 300, 0.5, 0, 2000, 0.25, 1900, 25, 3000, 2, 250, 1000,
20, 600, 500, 1000, 1000, 25, 100, 500, NA, 20, 3000, NA, 300,
12, 9, 700, 300, 3, 30, 200, 0, 600, NA, 100, 26, 3500, 4, 400,
12, 2000, 450, 4000, NA, 20, 60, 60, 1500, 15000, 40, 120, 2400,
40, 40, 25, 800, 1200, NA, 25, 2500, 20, 13, 10, NA, 200, 1200,
1200, NA, 0, 1600, 20, NA, 100, 2400, 2000, 2000, 700, 350, 3000,
800, 600, 12, 300, 100, 30, 60, 4000, 20, 1200, 50, 4000, 70,
1000, 700, 15, 10, 2, 80, 1500, 4000, 4000, 30, 50, 6, 200, 3,
6, 16, NA, 176, 130, 300, 300, 50, 1, 2000, 400, 300, 750, 13,
2000, 100, 5000, 2500, 1600, 3000, 30, 40, 30, 300, 5, 1700,
500, NA, 70, 1000, 300, 10, NA, 30, 25, NA, 7, 12, 12, 30, 0.1,
500, 25, 5000, 70, 0, 600, 28, 300, 1500, 800, 500, 120, 1600,
NA, 500, 250, 900, 30, 0.4, 20, 1000, 90, 20, 400, NA, NA, 0,
1900, 500, NA, 80, 700, 3, NA, 35, 5000, 4000, 2500, 320, 3500,
NA, 2000, 6, 4, 4, 5, 4, 4, 5, 4, 0, 2, 0, 6, 0, 7.5, 0, 6, 0,
0, 4, 0, 0, 0, 4, 0, 0, 0, 0, NA, 0, 0, 2, 2, 3, 0, 0, 0, 2,
4, 4, 0, 5, NA, NA, 0, 0, 7, 0, 5, 0, 2, 2, 0, 4, 0, 0, 4, 5,
4, 5, 0, 5, 3, 5, 4, 6, 6, 0, 0, 0, 0, 0, 6, 3, 4, 0, 0, 3, 4,
4, 5, 2, NA, NA, NA, 4, 4, 4, 7, 0, 5, 4, 4, 5, 3, 0, 6, 6, 5,
5, 6, 5, 0, 0, 0, 0, 3, 3, 3, 5, 0, 3, 3, 5, 5, 0, 0, 6, 0, 4,
0, 4, 0, 9, 3, 0, 0, 0, 4, 5, 0, 0, 2, 7, 0, 4, 0, 7, 4, 0, 5,
0, 5, 0, 8, 5, 5, 4, 6, 0, 5, 0, 0, 0, 10, 0, 5, 0, NA, 5, 1,
3, 4, 4, 3, 0, 5, 1, 0, 0, 0, 0, 4, 4, 2, 5, 3, 0, 3, NA, 5,
6, 0, 5, 0, 4, 0, 4, 6, 0, 0, 0, 0, 5, NA, 0, 5, 1, 4, 4, 4,
0, 3, 4, 0, 5, 2, 0, 0, 0, 7, 0, 0, 0, 0, NA, NA, NA, NA, 2,
3, 4, 0, 7, 6, 0, 2, 0, 0, 4, 4, 7, 0, 4, 2, 4, 4, 0, 6, 3, 0,
0, 3.5, 0, 2, 8, 6, 1, 2, 0, 4, 4, 4, 4, 4, 4, 4, 5, 0, 10, 10,
10, 5, 0, 1, 5, 2, 4, 2, 2, 3, 3, 5, 7, 7, 6, 6, 7, 5, 0, 6,
5, 7, 0, 7, 5, 5, 0, 1, 6, 5, 4, 5, 7, 0, 0, 6, 2, 6, 6, 0, 0,
0, 0, 0, 0, 2, 5, 0, NA, 0, 2, 0, NA, 3, 0, 0, NA, 6, 2, 2, 4,
0, 4, 7, 7, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1,
2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2,
2, 1, 2, 4, 2, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 2, 1, 2, 1, 4, 1,
1, 2, 2, 2, 1, 1, 1, 1, 4, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2,
2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1,
2, 1, 2, 2, 2, 1, 1, 2, 4, 3, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2,
1, 2, 1, 1, 1, 1, 1, 4, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2,
1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2,
1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 3,
1, 2, 4, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 1, 4, 1,
1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 4, 1, 1, 2, 2, 2, 1, 2, 2,
4, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 4, 4, 1, 1, 2, 2, 1, 2, 1,
1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2,
1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 4, 2, 1, 1, 1, 1, 2, 2, 2,
1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2,
2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2.9, 3, 2.7, 2.8, 2.7,
3.2, 2.3, 3.1, 1.9, 2, 2.7, 3, 3.6, 3.6, 2.7, 3.5, 2.6, 2.4,
1.4, 2.8, 3.1, 2.3, 2.2, 1.5, NA, 1.5, 2, 2, 2.3, 1.9, 3, 2,
1, 2, 1, 2, 3.1, 1, 1, 1.8, 3.5, 2, 2, 2, 2, 3, 2.5, 3.3, 3,
2, 3.3, 1, 2.6, 3.1, 2, 3, 2, 2, 3, 3, 3, 2.9, 3.5, 3.3, 3, 2.8,
3, 2, 3, 2.9, 3, 3, 3, 2.6, 2.2, 2.5, 3, 2, 2.6, 3, 3.2, 2, NA,
2.3, 3.1, 2, 3, 2.5, 3, 2.5, 3, 2.6, 2, 2.3, 3, 3.6, 2.4, 2,
3, 2.1, 3.1, 3, 3, 3.5, 3, 3, 3, 3.1, 2.3, 2.6, 3.5, 2, 2.5,
3.1, 2.3, 2, 2.6, 3, 2.6, 3, 2.4, 3, 2.7, 3.5, 3, 3, 3.2, 2.8,
3, 2.2, 2, 2, 2.9, 3.1, 2.6, 2.6, 2, 2, 2.5, 2.8, 2.1, 3.4, 2.8,
2, 2, 3.4, 3, 2.2, 3, 2, 2.5, 3, 2.6, 3, 3, 3.5, 2.6, NA, 1.9,
2, 2.5, 3, 3.1, 3.2, 2, 3, 2.8, 3, 3, 3, 3, 2.9, 2, 3.2, 3, 3,
3, 3, 4.5, 3, 3, 3, 2, 3, 3.2, 2.4, 3, 1, 2.7, 2.7, 3, 2, 2,
3.1, 3.4, 2, 2.6, 1, 3, 3.1, 2, 3, 3, 2.9, 2.3, 2, 3, 2, 3, 2.3,
3.2, 3.2, 3.6, 3, 3, 2.6, 3.1, 2, 1.9, 2.6, 3, 3.3, 3, 3.5, 2,
2.6, NA, 2, 3, 2, 3.4, 2, 3.1, 2, 3.4, 2, 3, 3, 2.9, 3, 1, 2.3,
2.1, 3.2, 3.2, 3.9, 2, 2, 3, 3, 2.5, 2, 2.1, 3, 2.9, 3.1, 3.2,
3, 2, 3.1, 3.4, 3, 2.7, 2.7, 3, 3.1, 3, 3, 2.3, 2.3, 2.7, 2.3,
2, 3.1, 3.2, 3, 3, 2.3, 3, 3, 1, 3, 3.2, 2, 2, 2.1, 2, 3, 2.7,
3, 3, 3.4, 3, 4, 3, 3.1, 3.3, 3.6, 3, 3, 3, 2, 2.8, 2, 1.8, 3,
1.9, NA, 3.3, 2, 3, 3, 3, 2, 2, 1.4, 10, 3, 1.4, 2, 3, 2.9, 3,
2.9, 2.2, 3, 4, 3.3, 2.5, 2, 4, 1.7, 3.3, 1, 3, 1.3, 4, 4.3,
4, 3, 3.3, 3, 1, 0.7, 3, 2, 3, NA, 1.7, 1.3, 1.7, 2.3, 2, 3.7,
2, 4, 1.7, 3, 1, 3, 1, 2.3, 1, 1, 2, 4, 2, 3, 1, 2, 3, 3, 2,
2.7, 2, 4, NA, 2, 3, 2, 3.7, 1, NA, 2.7, 3, 3, 2, 8, 3, 2, 2,
9, 1, 3, 3, 3, 3, 5, 2, 1, 3, 4, 2, 11, 4, 4, 1.8, NA, NA, 3,
2, 2, 3, 3, 12, 3, 2, 2, 10, 3, 5, 3, 2, 1, 2, 4, 3, 1, 4, 3,
3, 2, 3, 2, 2, 4, 2, 2, 3, 3, 3, NA, 3, 2, 5, 3, 3, 10, 4, 4,
3, 1.7, 3, 4, 3, NA, NA, 2, 2, 2.7, 3.7, 4, 3, 2, 1, NA, 7, 2,
3, 1, 5, 3, 2.7, 3, 2, 4, 3, 3, 3.7, 3, NA, 3, NA, 1, 2, 3, 2,
1, NA, 3, 3, 3, 5, 3, 2, 4, 2, 2, 2, NA, 10, 4, 3, 1, 4, 3, 5,
2, 4, 2.3, 1, 3, 1, 5, 4, 3, 2, 1, 8, 3, 2, 1, 1, 10, 3, 2, 3,
1, 2, 1, 3, 1, 3, 3, 2, 5, 3, 4, 2, 3, 3, 3, 3, 3, 3, 2, 3, 3,
5, 4, 2, 5, 1, 3, 4, 3, 3, 2, 1, 4, 2, 3, 3, 3, 2, 1, 3, 3, 4,
3, 4, 4, NA, 4, 4, 1, 1.3, 3, 4, 1.3, 3, 4, 4, 3, 2, 2, 5, 3,
4, 4, 3, 5, 3, 3, 2, 2, 1, 3, 3, 2, 3, 5, 3, 4, 3, 2, 3, 3, 3,
2, 6, 2, 3, 2, 4, 3, 4, 4, 2, 5, 3, 3, 4, 4, 4, 4, 4, 4, 2, 1,
5, 1, NA, NA, 1, 4, 3, 4, 3.3, 5, 1.3, 8, 4, 1, 9, 2, 5, 5, 10,
7, 3, 4, 1, 3, 4, 4, 4, 3, 3, 2, 3, 3, 3, 3, 3, 4, 3, 3, 4, 3,
3, 5, 3, 3, 3, 2, 3, 5, 3, 1, 1, 1, 3, 3, 3, 3, 5, 3, 2, 3, 3,
1, 4, 3, 3, 3, 3, 3, 4, 1, 3, 4, 3, 3, 1, 4, 3, 5, 5, 4, 3, 3,
3, 4, 4, 3, 4, 3, 4, 5, 3, 3, 4, 1, 3, 4, 3, 3, 3, 3, 3, 1, 3,
3, 3, 3, 4, 4, 4, 3, 4, 4, 4, 4, 4, 3, 3, 3, 3, 4, 4, 3, 4, 4,
3, 3, 5, 3, NA, 3, 3, 1, 4, 4, 4, 3, 3, 1, 3, 4, 4, 3, 4, 3,
3, 4, 3, 4, 4, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 3, 5, 3,
3, 3, 3, 4, 4, 3, 3, 3, 3, 3, 5, 5, 3, 4, 4, 4, 3, 4, 3, 4, 4,
3, 3, 3, 3, 4, 3, 3, 3, 1, 4, 3, 4, 3, 3, 3, 3, 3, 1, 3, 3, 3,
1, 3, 3, 5, 3, 3, 3, 4, 3, 3, 4, 1, 3, 3, 3, 3, 3, 4, 3, 3, 3,
3, 4, 3, 3, 3, 3, 3, 3, 4, 3, 1, 3, 1, 3, 4, 3, 4, 4, 3, 4, 4,
3, 4, 3, 3, 4, 3, 3, 3, 4, 4, 3, 3, 1, 3, 3, 4, 4, 4, 1, 3, 4,
3, 3, 3, 3, 3, 3, 4, 3, 3, 3, 1, 4, 4, 4, 3, 3, 4, 3, 4, 4, 3,
3, 3, 4, 4, 4, 4, 3, 3, 3, 1, 3, 3, 3, 4, NA, 3, 3, 4, 4, 4,
4, 4, 3, 3, 1, 4, 4, 3, 3, 4, 3, 3, 3, 3, 4, 3, 3, 2.3, 3, 3,
5, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 3, 2, 2, 2, 2, 1, 1, 1,
1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2,
1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2,
2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1,
2, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1,
1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2,
1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2,
1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2,
2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2,
1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1,
1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1,
1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1,
1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2,
2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1,
2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2,
1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1,
2, 1, 1, 1, 1, 1, 0, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1,
1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 0, 1, 1, 0, 0,
0, 1, 2, 1, 0, 1, 2, 1, 0, 2, 1, 1, 1, 2, 1, 1, 1, 0, 2, 1, 1,
1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2,
1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 0, 2, 1, 1,
1, 0, 1, 0, 2, 1, 1, 1, 0, 1, 2, 1, 1, 1, NA, 1, 2, 1, 1, 1,
1, 1, 1, 2, 1, 1, 1, 0, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2,
1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 0, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1,
1, 1, 0, 1, 0, 1, 2, 2, 0, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 0,
2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2,
1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2,
1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1,
1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 0, 2, 1, 1,
1, 2, 2, 1, 0, NA, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 0,
2, 0, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, NA, 1, 24, 40, 22, 11,
25, 20, 28, 70, 40, 30, 20, 65, 80, NA, 12, 16, 16, 20, 40, 40,
25, 40, 13, 74, 100, 50, 120, 18, 15, 18, 16, 18, 15, 18, 20,
14, 24, 20, 20, 24, 35, 45, 65, 16, 20, NA, 23, 16, 40, 12, 12,
55, 20, 84, 12, 15, 45, 18, 18, 17, 16, 108, 150, 18, 13, 15,
NA, 40, 214, 180, 24, 30, 98, 25, 30, 20, 20, 10, 13, 30, 120,
11, 22, 13, NA, 59.6, 54, 30, 18, 25, 50, 60, 15, 12, 16, 32,
14, 25, 16, 22.3, 24, 15, 10, 25, 80, 21, 50, 24, 16, 48, 35,
11, 15, 200, 39, 120, 25, 14, 17, 25, 78, 75, 130, 120, 18, 24,
38, 28, 76, 25, 30, 58, 80, 30, 30, 40, 74, 30, 100, 33, 20,
140, 84, 30, 45, 116, 60, 20, 28, 50, 20, 58, 120, 10, 21, 22,
15, NA, 30, 55, 70, 25, NA, 35, 40, 30, 90, 50, 120, 40, 20,
12, 20, 12, 14, 35, 50, 40, 34, 45, 16, 60, 2, 56, 25, 64, 62,
14, 20, 15, 44, 32, 20, 34, 53, NA, 25, 11, 15, 200, 40, 15,
15, 20, 40, 25, 75, 80, 20, 20, 59, 25, 30, 15, 21, 150, 90,
30, 22, 64, 65, 15, 25, 72, 70, 20, 50, 94, 30, NA, 15, 80, 70,
200, 90, 50, 30, 20, 300, 20, 16, 18, 94, 65, 20, 200, 30, 16,
20, 45, 30, 25, 35, 50, 35, 55, 13, 20, 24, 26, 18, 14, 15, 20,
16, 18, 75, 12, 25, 40, 120, 89, 30, 65, 23, 58, 35, 82, 20,
50, 44, 14, 160, 70, 90, 58, 68, 67, 100, 82, 60, 15, 16, NA,
24, 45, 180, 200, 18, 20, 81, 55, 70, 20, 90, 20, 60, 13, 25,
64, 40, 18, 20, 15, 130, NA, NA, 70, 25, 12, 28, 120, 38, 16,
17, 13, 20, 5, 30, 15, 25, 60, 15, 60, 5, 40, 12, 85, 45, 45,
20, 18, 40, 40, 45, 30, 70, 30, 1.15, 60, 90, 60, 10, 60, 3,
15, 5, 8, 10, 20, 15, 45, 30, 35, 30, 70, 10, 60, 45, 45, 40,
15, 6, 130, 5, 60, 15, 45, 20, 5, 20, 15, 10, 10, 25, 55, 60,
90, 10, 15, 45, 30, 10, 30, 60, 15, 80, 15, 1, 60, 30, 50, 55,
45, 10, 50, 5, 20, 30, 30, 12, 120, 15, 45, 8, 30, 30, 20, 45,
25, 15, 5, 20, 5, 63, 20, 40, 40, 60, 60, 30, 10, 15, 20, 20,
120, 5, 12, 20, 35, 40, 60, 10, 90, 18, 35, 30, 75, 40, 15, 32,
50, 35, 25, 8, 80, 5, 10, 64, 15, 30, 25, 45, 5, 30, 30, 60,
10, 10, 100, 60, 15, 40, 15, 10, 60, 60, 70, 20, 45, 15, 100,
40, 20, 15, 50, 30, 25, 30, 20, 60, 35, 15, 60, 110, 25, 45,
35, 40, 10, 70, 50, 40, 35, 40, 40, 50, 60, 3, 20, 45, 50, 2,
50, 50, 18, 25, 15, 45, 5, 120, 30, 30, 20, 30, 90, 60, 90, 30,
10, 40, 90, 60, 40, 10, 30, 65, 50, 45, 45, 60, 30, 90, 10, 20,
5, 30, 40, 10, 30, 10, 60, 35, 50, 70, 60, 120, 60, 15, 20, 90,
80, 40, 25, 20, 15, 4, 45, 60, 35, 45, 20, 20, 10, 8, 25, 45,
35, 60, 35, 15, 20, 90, 20, 20, 2, 25, 20, 10, 90, 20, 15, 20,
5, 30, 30, 25, 10, 20, 15, 5, 20, 30, 45, 50, 2, 45, 50, 20,
30, 15, 65, 15, 20, 20, 15, 12, 4, 30, 30, 5, 20, 30, 100, 90,
20, 105, 70, 40, 40, 20, 30, 3, 120, 150, 10, 10, 40, 5, 45,
30, 10, 20, 35, 50, 60, 60, 15, 50, 50, 50, 50, 40, 25, 300,
20, 200, 100, 200, 34, 3, 30, 150, 100, 2, 30, 50, 150, 60, 60,
50, 10, 30, 10, 300, 20, 100, 50, 50, 20, 6, 80, 200, 100, 20,
20, 50, 0, 100, 20, 200, 30, 30, 30, 20, 200, 4, 7, 150, 20,
100, NA, 100, NA, 40, 100, 12, 30, 6, 60, 400, 65, 50, 50, 150,
2, 1000, 100, 40, 30, 20, 30, 100, 30, 60, 20, 90, 80, 40, 100,
50, 301, 100, 20, 60, 150, 100, 200, 40, 25, 150, 250, 25, 100,
15, 40, 30, 20, 200, 120, 30, 5, 50, 30, 10, 100, 80, 50, 4,
30, NA, 50, 25, 50, 20, 50, 100, 50, 0, 400, 60, 80, 20, 80,
60, 75, 70, 180, 50, 30, 40, 30, 200, 52, 30, 100, 42, 100, 200,
150, 200, 30, 50, 30, 70, 75, 60, 150, 200, 150, 10, 30, 100,
7, 80, 300, 50, NA, 60, 250, 15, 250, 40, 40, 20, 150, 50, 80,
30, 50, 300, 50, 40, 15, 130, 10, 30, 50, 100, 100, 50, 60, 50,
400, 10, 50, 300, 0, 50, 200, 50, 50, 100, 5, 100, 80, 300, 50,
10, 5, 70, 200, 200, 30, 40, 20, NA, 100, 10, 100, 150, 46, 20,
200, 30, 40, 30, 80, 150, 30, 15, 100, 100, 50, 30, 50, 100,
30, 20, 30, 30, 140, 20, 50, 100, 100, 0, 100, 200, 30, 530,
50, 250, 180, 20, NA, 250, 30, 200, 200, 15, 20, 55, 15, 80,
120, 2, 50, 50, 50, 150, 7, 50, 10, 60, 250, 40, 40, 100, 50,
100, NA, 800, 150, 10, 450, 2000, 50, 10, 50, 42, 20, 0, 50,
100, 200, 50, 10, 180, 85, 100, 20, 50, 25, 80, 75, 100, 80,
80, 40, 20, 50, 300, 5, 100, 100, 150, 40, NA, 20, 170, 30, 5,
50, 150, 100, 30, 250, 150, 10, 60, 300, 120, 100, 50, 20, 20,
30, 40, 100, 50, 150, 25, 100, 24, 50, 20, 20, 150, 2, 40, 100,
25, 200, 250, 30, 14, 20, 40, 100, 30, 50, 20, 20, 40, 20, 20,
200, 200, 10, 100, 20, 10, 1000, 20, 300, 40, 20, 15, 100, 50,
50, 10, 20, 15, 20, NA, 20, 100, 30, 15, 11, 20, 20, 400, 25,
150, 25, 36, 100, 30, 500, 50, 100, 30, 40, 50, 100, 45, 70,
100, 33, 100, 30, 26, 150, 40, 100, 100, 150, 100, 70, 50, 30,
120, 30, 15, 30, 20, 40, 3, 50, 100, 20, 25, 20, 10, 20, 150,
20, 50, 50, 20, 40, 100, NA, 50, 15, 200, 70, 80, NA, 10, 20,
150, 80, 100, 48, 30, 70, 70, 25, 200, 80, 40, 30, 50, 50, 40,
100, 100, 87, 35, 200, 20, 30, 10, 200, 100, 250, 90, 40, 40,
20, 150, 10, 50, 20, 20, 200, 30, 40, NA, 100, 20, 15, 5, 100,
50, 25, 20, 20, 20, 70, 1, 10, 5, 70, 10, 30, 15, 20, 5, 100,
50, 20, 100, 100, 300, 2, 50, 100, 20, 50, 50, 30, 60, 30, 20,
20, 100, 150, 200, 5, 1, 40, 20, 10, 30, 100, 10, NA, 50, 20,
100, 30, 30, 40, 50, 10, 40, 4, 100, 100, 20, 40, 300, 50, 1,
80, 20, NA, 40, 40, 100, 50, 50, 40, 20, 60, 20, 0, 0, 70, 15,
300, 50, 100, 100, 20, NA, 100, 60, 17, 50, 100, 40, 40, 15,
60, 20, 100, 30, 80, 80, 500, 60, 60, 10, 120, 25, 30, 35, 200,
50, 80, NA, 50, 100, 25, 50, 50, 50, 35, 15, 38, 50, 40, 15,
100, 10, 40, 100, 50, 12, 10, 20, 100, 20, 180, 75, 200, 30,
35, 50, 30, 400, 200, 200, 100, 10, 150, 80, NA, 1000, 80, 20,
20, 50, 300, 50, NA, 25, 500, 10, 40, 50, 45, 50, 100, 78, 30,
32, 45, 25, NA, 30, 15, 26, 31, 35, 30, 53, 15, 0, 25, 8, 10,
45, 25, 40, 30, 29, 10, 20, 15, 50, 300, 60, 5, 10, 50, 10, 17,
28, NA, 0, 27, 67, 30, 40, 85, 60, 1, 30, 25, 30, 160, 143, 20,
25, 0, 20, NA, 29, 15, 15, 12, 7.8, 14, 15, 20, 90, 50, 20, 15,
40, 5, 20, 28, 25, 70, 15, 18, 25, 10, 35, 15, 20, 105, 8, 46,
30, 50, 10, 92, 30, 15, 45, 30, 30, 10, 42, 15, 10, 55, 40, 20,
60, NA, 30, 0, 25, 60, 15, 20, 70, 15, 32.62, 40, 40, 40, 30,
60, 20, 0, 50, 0, 30, 25, 15, 15, 30, 60, 50, 140, 23, 50, 45,
20, 23, 25, 10, 28, 20, 20, 15, 25, 15, NA, 12, 100, 25, 15,
0, 65, 50, 35, 0, 35, 75, 40, NA, 20, 55, 37, 42, NA, 15, 15,
15, 66, NA, 40, 60, 35, NA, 23, 50, NA, 30, 25, 15, 12, 50, 50,
0, 30, 36, 106, 25, 15, 15, 60, 50, 2, 15, 15, 160, 50, 25, 90,
40, 25, 96, 10, 50, 0, 50, 30, 40, 46, 22, NA, 50, 50.74, 40,
80, 15, 50, 15, 5, 15, 40, 65, 10, 15, 15, 40, 50, 60, 27, 100,
30, 15, 40, 17, 18, 0, 12, 30, 12, 25, 25, NA, 35, 0, 65, 55,
0, 20, 30, 0, 0, 48, 30, 15, 45, 25, 50, 10, 15, 0, 50, 35, NA,
60, 20, 15, 100, 25, 60, 32, 10, 17, NA, 20, 41, 15, 15, 90,
NA, 30, 40, 25, 30, 85, 30, 150, 16, 22, NA, 0.8, 40, 33, 70,
90, 73, 15, 12, 30, 22, 12, 15, 20, 38.5, 20, 18, 97, 21, 30,
45, 15, 30, 60, 10, 28, 85, 150, 15, 50, 10, NA, 35, 30, 0, NA,
15, 30, NA, 98, 25, 20, 15, 28, 0, 1000, 0, 0, NA, 700, 500,
0, 200, 0, 0, 0, 400, 40, 50, 600, 0, 0, 65, 0, 1000, 200, 0,
0, 200, 0, 100, 0, 800, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1000, 80, 0, 0, 0, 600, 200, 1000, 0, 0, 800, 1000,
0, 0, 0, 200, 600, 1000, 60, 200, 200, NA, 0, 800, 0, 0, NA,
450, 0, 600, 100, 150, 450, 600, 800, 800, 10, 0, 0, 100, 0,
0, 50, 750, 0, 1000, 750, 900, 400, 0, 0, 200, 0, 1300, NA, NA,
0, 500, 1000, 500, 0, 600, 0, 0, 0, 0, 0, 500, NA, 500, 400,
1000, 100, 1000, 500, 600, 0, NA, 200, 0, 800, 600, 400, 150,
0, 500, 800, 0, 0, 0, 0, 0, 250, 0, 400, 300, 350, 0, 0, 500,
700, 1000, 900, 400, 200, 250, 170, 1000, 0, 0, 0, 1000, NA,
200, 180, 700, NA, 350, 500, NA, 1000, 30, 0, 980, 200, 450,
0, 150, 150, 0, 600, 300, 1100, 0, 210, 1000, 0, 1000, 1000,
0, 1100, 800, 0, 60, 100, 0, 500, 0, 170, 1000, 0, NA, 850, 0,
NA, 200, 1000, 400, 0, 100, 0, 0, 200, 600, 0, 300, NA, 10, 50,
200, 1200, 1000, 100, 0, 0, 600, NA, 0, 500, 500, 300, 400, NA,
36, 0, NA, 1000, 800, NA, 50, 0, 400, 1000, 800, 0, 0, 130, 0,
400, 500, NA, 1000, 0, 0, 500, 0, 100, 0, 1000, 850, 180, 1000,
150, 0, 0, 450, 1000, 500, 400, 0, 300, 400, 250, 800, NA, 600,
NA, 0, 400, 1000, 800, 1000, 400, 800, 300, 0, 700, 700, 500,
1000, 1000, 0, 0, 300, 0, 1000, 50, 450, 0, 100, 900, 500, 80,
0, 0, NA, 600, 200, 0, 300, 1000, 200, 0, NA, 0, 0, 30, 0, 0,
150, 0, 0, 0, 0, 200, 1000, 1000, 1000, 500, 0, 5, 5, 7, 5, 9,
9, 5, 10, 5, 9, 8, 2, 5, 2, 5, 5, 5, 5, 5, 6, 5, 5, 6, 6, 7,
NA, 5, 5, 9, 5, 11, 5, 5, 11, 5, NA, 6, 5, 5, 5, 5, NA, 10, 5,
5, 5, 5, 5, 5, 10, 5, 1, 5, NA, 5, 5, 5, 2, 4, 5, 5, 5, 2, 5,
5, 5, 2, 5, 5, 5, NA, 9, 5, 5, 5, 6, 10, 5, 6, 5, 4, 5, NA, 6,
5, 5, 6, 2, 2, 5, 10, 6, 5, NA, 6, NA, 5, 10, 6, 5.1, 5, 10,
5, 2, 5, 5, 6, 10, 2, 5, 6, 5, 4, 9, 7, 5, 6, NA, 11, 5, 5, 2,
4, 5, 6, 5, 5, 2, 5, 5, 5, 6, 5, 11, 6, 5, 2, 5, 5, 5, 2, 5,
5, 10, 6, 5, 5, 10, 6, 2, 10, 6, 5, NA, 5, 6, 5, NA, 5, 2, 5,
2, 5, 1, 6, 5, 5, 5, 5, 6, 6, 5, 5, 5, 6, 4, 5, 10, 5, 6, 5,
5, 2, 5, 5, 1, 5, 5, 5, 5, 5, 5, 5, 6, 5, 5, 5, 5, 5, NA, 6,
6, 5, 9, 5, 6, NA, NA, 2, 9, 10, 5, 2, 2, NA, 5, 5, 5, 5, 1,
6, 5, 1, 5, 9, 5, 5, 5, 10, 6, 5, 8, 2, 9, 6, 5, 5, 5, 5, 10,
8, 2, 6, 5, 1, 7, 5, 5, 5, 2, 1, 11, 11, 10, 6, NA, 6, 2, 9,
9, 6, 6, 5, 5, 5, 5, 6, 2, 1, 5, 5, 5, 6, 6, 5, 6, 5, 6, 10,
5, 5, 2, 5, 11, 4, 10, 5, 2, 5, 5, 5, 1, 5, 5, 6, 2, 5, 5, 7,
6, 5, 7, 2, 8, 1, 6, 5, 5, 5, 9, NA, 5, 10, 5, 6, 8, 7, 5, 6,
2, 6, 6, 3, 2, 6, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1,
1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 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, 2, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1,
1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, NA, 1, 1, 2, 2,
1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1,
1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1,
1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 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, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2,
2, 1, 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1,
1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1,
2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1,
NA, NA, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 400, 550,
500, 500, 300, 100, 300, 100, 300, 500, 500, 600, 300, 50, 500,
300, 400, 300, 200, 500, 500, 500, 500, 500, 500, 100, 300, 400,
250, 380, 500, 600, 500, 500, 600, 400, 550, 500, 650, 300, NA,
600, 300, 600, 150, 500, 500, 500, 1000, 500, 500, 500, 350,
400, 550, 200, 400, 300, 400, 100, 400, 600, 500, 500, 200, 300,
100, 800, 150, 400, 500, 300, 100, 400, 300, 300, 200, 200, 200,
600, 500, 700, 500, 600, 400, 550, 550, 400, 500, 500, 200, 250,
200, 300, 300, 400, 250, 600, 500, 400, 300, 200, 600, 250, 400,
550, 650, 500, 580, 1000, 500, 500, 400, 400, 300, 200, 1000,
400, 500, 500, 1000, 500, 600, 300, 500, 600, 450, 400, 600,
80, 300, 400, 600, 250, 300, 600, 600, 500, 800, 500, 300, 300,
900, 200, 400, 100, 500, 500, 300, 600, 400, 400, NA, 400, 800,
750, 600, 1000, 200, 500, 200, 600, 300, NA, 500, 300, 300, 1750,
300, NA, 200, 1000, 300, 100, 500, 500, 150, 100, 500, 550, 300,
500, 500, 400, 300, 400, 600, 600, 300, 150, 500, 800, 800, 150,
800, 50, 250, 350, 800, 500, 200, 400, 500, 600, 500, 500, 800,
600, 400, 600, 600, 350, 60, 300, 200, 500, 300, 300, 700, 400,
400, 200, 600, 500, 500, 200, NA, 500, 50, 200, 150, 500, 400,
300, 550, 350, 400, 600, 500, 300, 700, 280, 300, 200, 300, NA,
600, 500, 300, 700, 400, 100, 500, 250, 700, 250, 450, 400, 400,
600, 600, 450, 100, 300, 250, 550, 500, 600, 500, 150, 500, 650,
600, 400, 350, 500, 500, 800, 350, 400, 300, 700, 500, 600, 600,
600, 1000, 1500, 400, 350, 400, 200, 300, 100, 500, 400, 200,
300, 850, 100, 600, 600, 150, 400, 650, 300, 150, 600, 400, 500,
650, 300, 20, 600, 500, 50, 610, 250, 500, 200, 200, 400, 800,
300, 500, 20, 25, 35, 18, 30, 30, 25, 35, 25, 20, 30, 25, 35,
16, 26, 25, 25, 30, 26, 32, 20, 21, 30, 35, 30, 30, 30, 24, NA,
25, 40, 40, 40, 40, 20, 40, 28, 25, 15, 20, NA, 18, 16, 16, 28,
30, 38, 30, NA, 25, 25, 18, 45, 20, 25, 30, 10, 35, 30, 12, 40,
25, 18, NA, 24, 8, 50, 15, 25, NA, 40, 30, 20, 45, 40, 14, 16,
22, 22, 20, 25, NA, 20, 24, 40, 40, 40, 30, 30, 50, 20, 20, 50,
50, 45, 18, 40, 30, 40, 40, 30, 35, 30, 25, 16, 25, 30, 35, 18,
40, 10, 25, 50, 20, 55, 40, 10, 28, 20, 20, 12, 30, 35, 50, 30,
28, 38, 35, NA, 24, 30, 30, 22, 24, 50, 70, 40, 22, 25, 25, 20,
9, 60, 25, 25, 60, 29, 28, 26, 60, 35, 30, 30, 30, 45, 35, 45,
30, 40, 30, NA, 35, 30, 18, 40, 20, 15, 30, 25, NA, 25, 35, NA,
25, 20, 30, NA, 25, NA, 26, 30, 30, 35, 30, 20, 35, 40, 40, 35,
30, 35, 25, 35, 35, 30, NA, 40, 38, 20, 30, 16, 25, 30, NA, 50,
10, 56, 56, 40, 30, 25, 22, 30, 30, 10, 25, 25, 20, 35, 20, 35,
48, 50, 20, 30, 38, 32, 16, 30, 25, 30, 35, 25, 20, 40, 25, 20,
20, 22, 40, NA, 25, 40, 35, 30, 30, 30, 14, 27, 25, 47, 30, 36,
50, 25, 27, 24, 40, 24, 24, 30, 24, 40, 20, 50, 30, 35, 30, 28,
NA, 50, 30, 40, 30, 30, 35, 30, 25, 25, 26, 26, 40, 30, 32, 30,
30, 35, 35, 30, 35, 32, 30, 28, NA, 45, 19, 25, 25, 20, 10, 27,
50, 27, 21, NA, 35, 23, 40, 32, 40, 40, 10, 30, 25, 40, 50, NA,
50, 30, 30, 35, 35, 40, 40, 15, 0, 12, 5, 20, 16, 8, 10, 0, 10,
NA, 0, 0, 10, 0, 1, 6, 10, 12, NA, 10, 20, 40, 0, 15, 10, 25,
NA, 10, 0, 10, NA, 6, NA, 15, 15, 0, 4, 0, 15, 10, 0, NA, 12,
NA, 4, NA, 0, 20, NA, 9, 10, 15, NA, 0, 20, 8, 8, 8, 8, 7, 0,
10, 10, NA, 8, 0, 10, 10, 6, NA, 0, 10, 15, 10, 0, NA, 0, 10,
6, 0, 0, NA, 20, 0, 0, 19, 15, 15, 12, NA, 10, 10, 10, 7.5, 8,
0, NA, 0, 10, NA, 22, 12, 15, 40, NA, NA, 10, 40, 10, 20, 20,
10, 8, 0, 0, 20, NA, NA, 0, 12, 15, 8, 12, NA, 0, 0, 15, 10,
8, NA, 10, 5, 10, 0, 0, 10, 11, 10, 10, 10, 10, NA, 8, 10, 12,
15, NA, NA, 0, 0, 15, 10, NA, 16, 20, 15, 19, 10, 12, 8, 0, 0,
0, 0, 10, 30, 20, 10, 30, 0, 20, 12, 10, 5, 10, 0, 10, 0, NA,
10, 16, 10, 0, 0, 0, 0, 5, 8, 10, 15, 4, 0, 5, NA, 12, 0, 20,
11, NA, NA, 8, 15, 10, NA, 10, 10, NA, NA, 10, 0, 0, 2, 0, 10,
10, NA, 12, NA, 0, 5, 15, 6, 10, 5, 0, 10, 0, 0, NA, NA, 0, 8,
12, 15, 14, 10, 0, 10, 20, 0, 7, NA, 0, 0, 0, 0, 10, 5, 0, NA,
0, 6, 0, 8, 10, 6, 15, 10, NA, 8, 8, NA, 5, 2, 15, 12, 10, 8,
10, NA, 10, NA, 0, 10, 15, 15, 6, 10, 8, NA, 6, 0, 35, 0, 14,
8, 20, NA, 15, 10, 8, 10, 12, NA, 15, 15, 15, 10, 15, 24, 20,
20, 0, NA, 20, 20, 0, 0, NA, 0, 7, 2, NA, 15, 20, 0, NA, 0, 10,
5, 8, 0, 15, 0, 12, 14, 8, 10, 15, 10, 2, 10, 14, 5, 10, 5, 10,
5, 10, 24, 10, 14, 5, 7, 4, 10, 12, 0, 7, 14, 14, 2, 4, 6, 10,
10, 10, 5, 5, 0, NA, 4, 7, 10, 5, 9, 15, 24, 20, 10, 6, 8, 10,
NA, 12, NA, 20, 6, 0, 10, 16, 8, 14, 10, 8, 10, 15, 10, 30, 20,
20, 5, 5, 8, NA, 14, 8, 20, 20, 0, 10, 20, 15, 20, 20, 10, NA,
0, 10, 8, 4, 5, 30, 10, 10, 14, 14, 10, 30, 30, 19, 5, 15, 20,
12, 18, 12, 20, 10, 15, 10, 15, 15, 0, 20, 20, 5, 5, 20, 5, 5,
20, 0, 15, 3, 2, 20, 15, 21, 15, 10, 14, 5, NA, 8, 10, 20, 10,
10, 10, 5, 12, 14, 0, 10, 16, 3, 9, 28, 0, 4, 8, 10, 30, 12,
5, 10, NA, 10, 15, 15, 20, 6, 8, 5, 10, 10, 12, 8, 10, 30, 10,
20, 10, 18, 20, 6, NA, 10, 10, 20, 1, 14, NA, 22, 5, 5, 20, 20,
2, 10, 10, 6, 10, 13, 14, 10, 15, 10, 4, 6, 5, 20, 10, 10, 6,
21, 10, 30, 10, 8, 20, 5, 20, 20, 20, 14, 20, 20, 10, 7, 20,
5, 20, 15, 4, 4, 10, 15, 10, 10, 10, 10, 10, 20, 20, 20, 5, NA,
5, 7, 20, 20, 20, 15, 8, 10, 15, 20, 20, 15, 15, 20, 22, 1, 12,
15, 4, 30, 4, 6, 8, 14, 7, 10, 10, 10, 15, 10, 1, 20, 20, 4,
4, NA, 3, 10, 14, 8, 15, 15, 2, 16, 8, NA, 6, 7, 12, 7, 1, 2,
10, 1, 10, 28, 30, NA, 14, 6, 3, 8, 5, 8, 10, 10, 10, 8, 10,
3, 20, 10, 3, 10, 10, 20, 2, 6, 10, 15, 0, 3, 5, 20, 3, 20, 8,
6, 25, 14, 10, 3, 1500, 4000, 3000, 2.5, 2000, NA, 2, 2, 2, 1000,
50000, NA, 2500, 1, 30, 15, 1800, NA, 3500, 5, 6, 4000, 2000,
NA, 1000, 1000, 2500, 2500, 1.5, 7, 35, 0, 800, 12, NA, 10, 2000,
2500, 1000, 2, 28000, 3000, NA, NA, 2500, 4000, 2000, NA, 0,
2500, 30, 2500, 2, 16, 1.8, 2200, 1000, 15000, 2, 3, 10, 2000,
NA, 15, 1.5, 2, 2, NA, NA, 38, 30, 10000, 50000, 30, 15, 1, 2,
NA, 1500, 2, NA, NA, 100, 3000, 2000, 1000, 20, 100, 2, 1, 1,
1800, 20000, 20000, 5000, 1.5, 25, 24, 1.4, 40, 30, 30, 20, 1800,
1500, NA, 1500, 2000, 3000, 3000, 3, 1500, 1500, 1500, 1900,
NA, 5, 4000, 2, 3, 2500, 1800, 2.5, 40000, 40, 3000, 4, NA, NA,
1300, 1500, 35, 1, 20, 20, 120, 30, 120, 1500, 30, 1500, 5, 1500,
5, 2200, 40, 40, 1500, 280, 2000, 1200, NA, 1000, 2500, 3, 30,
4000, NA, 2000, 2, 1200, 8000, 90000, 20, 2000, 35, 18000, 3000,
40, 2500, 1.5, NA, 1, 1100, 25, NA, 1500, 3, 2500, 2, 2000, 2200,
2000, 5, 1, NA, NA, NA, 2500, 25, 2, 40, 30000, 1.5, 2, 40, 2100,
3, 1500, 1, 2000, 1500, NA, 3, 36000, 36, NA, 2000, 3000, 2500,
1700, 24, 2000, 1500, NA, 2000, 25, 240000, 3000, 2, NA, 2500,
2000, 2000, 1500, 20, NA, 1999, 2, 15, 2500, 2.5, 5, NA, 50,
99, 1200, 2000, 20000, 1, 1700, 22, 2, 0, 2.5, 1000, NA, 1500,
40, 50, 1e+05, 3000, 12, 20, NA, 2500, 1000, 2500, 1800, 2000,
2500, 1000, 3, 100, 1500, 1500, 3500, 3000, NA, 3, 2000, 3000,
3, NA, 45, 40, NA, 40, NA, 2, 1, 1.5, 6, 50, 50000, 3000, 2000,
1500, 3, 3.5, 1000, 30, NA, 3000, 15000, 15000, 100, 2200, 2000,
1300, 1300, 1500, 16, 22, 2, 30, 800, 15000, 30, NA, 2300, 50,
7, 2, 3, NA, 2.5, 100, NA, 30000, 30000, 25000, 2000, 1800, 10,
12, 12, 6, 8, 9, 9, 9, 11, 9, 14, 10, 11, 10, 12, 10, 10, 9,
9, 9, 11, 9.5, 8, 10, 10, 9, 7, 9, 12, 9, 9, 9, 6, 9, 10, 9,
9, 8, 2, 10, 8, 9, 5, 9, 10, 11, 10, 9, 9, 5, 14, 6, 9, 10, 8,
10, 9, 6, 12, 8, 10, 10, 11, 9, 13, 9, 10, 8, 10, 10, 10, 10,
10, 12, 10, 10, 10, 10, 9, 10, 9, NA, NA, 9, 10, 12, 12, 12,
10, 10, 9, 9, 10, 9, 11, 12, 9, 9, 9, 10, 14, 10, 10, 12, 11,
10, 9, 12, 10, 6, 10, 10, 10, 8, 15, 7, 12, 8, 10, 9, 9, 10,
10, 9, 6, 10, 9, 8, NA, 7, 9, 9, 10, 10, 9, 10, 12, 10, 8, 10,
10, 9, 10, 10, 8, 14, 9, 10, 8, 10, 9, 10, NA, 12, 15, 10, 9,
10, 9, 9, 8, 9, 10, 10, 10, 12, 9, 3, 10, 10, 10, 9, 10, 10,
10, 10, 9, 9, NA, 11, 10, 11, 11, 12, 10, 11, 10, 10, 11, 10,
12, 10, 9, 10, 10, 9, 12, 10, 10, 11, 10, 9, 9, 10, 10, 10, 10,
9, 11, 10, 15, 10, 10, 11, 9, 9, 9, 9, 10, 10, 8, 9, 10, 11,
10, 9, NA, 11, 10, 9, 11, 8, 13, 12, 9, 9, 10, 10, 9, 10, 6,
8, 9, 10, 10, 8, 11, 8, 10, 9, 8, 9, 9, 1, 12, 2, 10, 11, 10,
10, 12, 10, 8, 10, 8, 12, 12, 10, 9, NA, 9, 9, 10, 8, 9, 10,
10, 10, 10, 10, 10, 9, 12, 9, 9, 11, 10, 12, 12, 12, 8, 10, 9,
9, 10, 0.9, 9, 9, 9, 10, 9, 8, 10, 10, 10, 10, 9, 8, 10, 10,
10, 10, 8, 12, 8, 10, NA, 10, 9, 6, 12, 12, 12, 11, 10, 624,
610, 600, 540, NA, NA, 60, 300, 600, NA, NA, 55, NA, 50, 52,
480, 480, 480, NA, NA, 600, 550, NA, 550, NA, 600, 600, NA, 500,
NA, NA, NA, 600, 600, NA, NA, 600, 45, 600, 500, 600, NA, NA,
200, 580, 580, 600, 6, NA, 600, 60, NA, 700, 540, 10, 600, 701,
5, 5, 610, 780, 60, 600, NA, 500, 500, 501, 540, NA, NA, 600,
600, 600, 600, 700, NA, 647, 636, NA, 600, 72, NA, NA, NA, NA,
NA, NA, 500, 68, 700, 450, 520, 600, 580, NA, 54, NA, 600, 600,
723, NA, NA, NA, 50, 75, 45, NA, 600, 500, 500, NA, 20, 550,
47, 6000, 600, 600, 50, 75, 45, 660, 600, 513, 720, 650, 650,
624, 650, NA, NA, NA, 600, 45, 480, 500, 1, 600, 780, 720, 650,
600, NA, 600, 650, 517, NA, NA, NA, 500, 520, 1350, 1350, 55,
10, 52, 850, 999, 70, 500, NA, 600, 500, 24, 68, 613, 48, NA,
40, 40, NA, 45, 750, NA, 720, 720, 500, 55, 45, NA, 816, NA,
600, 60, 600, 10, 600, 480, NA, NA, 60, 567, 56, 600, NA, 444,
NA, 600, 580, 45, 58, NA, 540, 100, NA, 600, 55, NA, NA, 600,
NA, 580, 600, 70, 400, 50, NA, 60, 40, 600, 640, 640, NA, NA,
606, 720, 45, NA, NA, 800, 720, 500, 500, 55, NA, NA, 300, 114,
1400, NA, 600, 54, 570, 550, 550, 816, 150, NA, NA, 58, 600,
577, 588, 600, 600, 999, NA, 60, 500, 560, 560, 504, 52, 540,
300, 17, 600, 900, 350, 700, NA, 620, 40, 700, 600, 750, 55,
120, 60, 60, 52, 46, 600, 600, 600, 600, 500, NA, NA, 600, 800,
800, 12, 630, 550, 550, 720, 720, 60, 690, 600, 712, 720, 760,
50, 46, 600, 600, NA, 28, NA, NA, 55, 45, 3, 500, 600, NA, 575,
55, 55, 600, 575, 600, 800, 766, 5, 1, 3, 5, 2, 5, 6, 5, 5, 3,
9, 2, 1, 5, 1, 5, 3, 1, 5, 7, 1, 1, 1, 9, 5, 5, 1, 5, 5, 4, 7,
1, 7, 9, 9, 7, 3, 9, 9, 7, 3, 9, 7, 9, 5, 1, 9, 6, NA, 1, 1,
8, 1, 7, 7, 1, 1, 1, 3, 1, 1, 5, 1, 1, 4, 6, 1, 5, NA, 9, 9,
2, 7, 5, 1, 1, 5, 5, 3, 1, 2, NA, NA, 4, 9, 8, 3, 6, 2, NA, 1,
5, 1, 1, 1, 7, 9, 1, 1, NA, 9, 5, 1, 2, 1, 3, 1, 3, 3, 2, 5,
5, 2, 3, 7, 3, 1, 1, 5, 8, 1, 1, 5, 5, 8, 1, 8, 7, NA, 5, NA,
1, 3, 2, 5, 3, 3, 2, 7, 5, 1, 7, 3, 7, 9, 6, 5, 5, 6, 5, 9, 5,
5, 1, 1, 1, 3, NA, 5, 1, 5, 8, 5, 6, 1, 9, 5, 7, 1, 9, 5, 8,
3, 3, 1, 2, 7, 7, 9, 2, 6, 5, 1, 1, 5, 3, 2, 8, 1, 1, 9, 2, 9,
5, 1, 5, 1, 5, 3, 7, 5, 1, 5, 1, 4, 9, 5, 9, 8, 1, 5, 1, 1, 1,
5, 1, 5, 6, 3, 2, 9, 4, 2, 1, 6, NA, 1, 7, 9, 3, 1, 1, 5, 5,
3, 8, 5, 6, 9, 3, 4, 1, 2, 1, 1, 1, 1, 9, 1, 2, 1, 9, 1, 1, 2,
7, 1, 5, 9, 9, 5, 1, 5, 8, 1, 5, 7, 8, 2, NA, 5, 5, 5, 9, 3,
7, 5, 5, 8, 5, 9, 4, 1, 3, 1, 1, 9, 1, 1, 3, 5, 1, 1, 3, 2, 1,
1, 1, 1, 9, 9, 3, 1, 1, 1, 9, 1, 5, 2, 7, 8, 9, 6, 5, 5, 4, NA,
1, 3, 5, 1, 9, 5, 1, 5), .Dim = as.integer(c(325, 37)), .Dimnames = list(
NULL, c("geschlecht", "groesse", "gewicht", "alter", "haarfarbe",
"haarlaenge", "schuhegroesse", "brueder", "schwestern", "groesse-mutter",
"groesse-vater", "glueckszahl", "rauchen", "urlaubs-km",
"wiwi-fete", "studiengang", "abi-note", "mathe-note", "verkehrsmittel",
"wohnen-bei-eltern", "rechner", "wohnung", "wegzeit", "cds",
"buecher", "handy", "auto-km", "zeitung", "studienort", "euro-verbrauch",
"studierzeit", "verdienzeit", "tv-zeit", "gehalt", "studiendauer",
"dekansalter", "partei")))
#:9
#10:
skript.p.165<-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)
skript.p.166<-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)
#:10
#11:
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)
}
#:11
#12:
stabdiagramm<-function(x,xlim){
if(missing(xlim)||length(xlim)!=2) xlim<-range(pretty(x)) #R
if(0==diff(xlim)) xlim<-xlim+c(-1,1) #R
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)
}
#:12
#13:
balkendiagramm<-function(x,breaks,...){
barplot(table(cut(x,breaks=breaks)),horiz=T,...)
}
#:13
#14:
slider<-function(refresh.code,names,minima,maxima,resolutions,starts,title="Steuerung",no=0,
# slider version pw041030
set.no.value=0){
if(no!=0) return(as.numeric(tclvalue(get(paste("slider",no,sep=""),env=slider.env))))
if(set.no.value[1]!=0){ try(eval(parse(text=paste("tclvalue(slider",set.no.value[1],")<-",
set.no.value[2],sep="")),env=slider.env)); return(set.no.value[2]) }
if(!exists("slider.env")) slider.env<<-new.env()
require(tcltk); nt<-tktoplevel(); tkwm.title(nt,title); tkwm.geometry(nt,"+0+0")
for(i in seq(names))
eval(parse(text=paste("assign(\"slider",i,"\",tclVar(starts[i]),env=slider.env)",sep="")))
for(i in seq(names)){
tkpack(fr<-tkframe(nt)); lab<-tklabel(fr, text=names[i], width="25")
sc<-tkscale(fr, command=refresh.code, from=minima[i], to=maxima[i],
showvalue=T, resolution=resolutions[i], orient="horiz")
assign("sc",sc,env=slider.env); tkpack(lab,sc,side="right")
eval(parse(text=paste("tkconfigure(sc,variable=slider",i,")",sep="")),env=slider.env)
}
tkpack(fr<-tkframe(nt),fill="x")
tkpack(tkbutton(fr, text="Exit", command=function()tkdestroy(nt)),side="right")
tkpack(tkbutton(fr, text="Reset", command=function(){
for(i in seq(starts)) eval(parse(text=paste("tclvalue(slider",i,")<-",starts[i],sep="")),env=slider.env)
refresh.code() } ),side="left")
invisible(nt)
}
slider<-slider2<-function(sl.functions,sl.names,sl.mins,sl.maxs,sl.deltas,sl.defaults,
but.functions,but.names, no,set.no.value,obj.name,obj.value,
reset.function,title,DEBUG=F){
# slider2, pw 050107
if(!missing(no)) return(as.numeric(tclvalue(get(paste("slider",no,sep=""),env=slider.env))))
if(!missing(set.no.value)){ try(eval(parse(text=paste("tclvalue(slider",set.no.value[1],")<-",
set.no.value[2],sep="")),env=slider.env)); return(set.no.value[2]) }
if(!exists("slider.env")) slider.env<<-new.env()
if(!missing(obj.name)){
if(!missing(obj.value)) assign(obj.name,obj.value,env=slider.env) else
obj.value<-get(obj.name,env=slider.env)
return(obj.value)
}
if(missing(title)) title<-"slider control widget"
require(tcltk); nt<-tktoplevel(); tkwm.title(nt,title); tkwm.geometry(nt,"+0+0")
if(missing(sl.names)) sl.names<-NULL
if(missing(sl.functions)) sl.functions<-function(...){}
for(i in seq(sl.names)){
eval(parse(text=paste("assign('slider",i,"',tclVar(sl.defaults[i]),env=slider.env)",sep="")))
tkpack(fr<-tkframe(nt)); lab<-tklabel(fr, text=sl.names[i], width="25")
sc<-tkscale(fr,from=sl.mins[i],to=sl.maxs[i],showvalue=T,resolution=sl.deltas[i],orient="horiz")
tkpack(lab,sc,side="right"); assign("sc",sc,env=slider.env)
eval(parse(text=paste("tkconfigure(sc,variable=slider",i,")",sep="")),env=slider.env)
sl.fun<-if(length(sl.functions)>1) sl.functions[[i]] else sl.functions
if(!is.function(sl.fun)) sl.fun<-eval(parse(text=paste("function(...){",sl.fun,"}")))
tkconfigure(sc,command=sl.fun); if(DEBUG) cat("slider",i,"eingerichtet")
}
assign("slider.values.old",sl.defaults,env=slider.env)
tkpack(f.but<-tkframe(nt),fill="x")
tkpack(tkbutton(f.but, text="Exit", command=function()tkdestroy(nt)),side="right")
if(missing(reset.function)) reset.function<-function(...) print("relax")
if(!is.function(reset.function))
reset.function<-eval(parse(text=paste("function(...){",reset.function,"}")))
tkpack(tkbutton(f.but, text="Reset", command=function(){
for(i in seq(sl.names))
eval(parse(text=paste("tclvalue(slider",i,")<-",sl.defaults[i],sep="")),env=slider.env)
reset.function() } ),side="right")
if(missing(but.names)) but.names<-NULL
for(i in seq(but.names)){
but.fun<-if(length(but.functions)>1) but.functions[[i]] else but.functions
if(!is.function(but.fun))but.fun<-
eval(parse(text=paste("function(...){",but.fun,"}")))
tkpack(tkbutton(f.but, text=but.names[i], command=but.fun),side="left")
cat("button",i,"eingerichtet")
}
invisible(nt)
}
dichtespur.interaktiv<-function(x){
if (any(x <= 0)) {
x <- x - min(x) + 1e-04 * diff(range(x))
print("WARNUNG: x Werte wurden verschoben, da z.T. <=0!")
}
jittervalues<-runif(length(x))
refresh.fns<-function(...){
# Parameter holen
lambda<-slider(no=1); rel.width<-slider(no=2)
# Umsetzung
xx<-if(lambda!=0) (x^lambda-1)/lambda else log(x)
h<-density(xx,width=rel.width*(max(xx)-min(xx)),n=200)
par(mfrow=2:1)
op<-par(mfrow=2:1,xaxs="i")
plot(h$x, h$y, type="l",bty="n",xlab="x",ylab="y"); abline(h=0)
xlim<-par()$usr[1:2]
boxplot(xx, horizontal=TRUE,xlab="x",ylim=xlim,axes=F)
points(xx,1.3+0.15*jittervalues)
axis(1)
par(op)
}
slider(refresh.fns,c("lambda: Box-Cox-Parameter","relative Breite"),
c(-0.5,0.01),c(8,1),c(.1,.01),c(1,0.2))
}
#:14
#15:
stem.leaf <- function(data, unit, m, Min, Max, rule.line=c("Dixon", "Velleman", "Sturges"),
style=c("Tukey", "bare"), trim.outliers=TRUE, depths=TRUE, reverse.negative.leaves=TRUE){
#Author: Peter Wolf 05/2003 (modified slightly by J. Fox, 20 July 03)
#4:
rule.line <- match.arg(rule.line)
style <- match.arg(style)
#:4
#29:
debug.show<-function(name){
if(!exists("debug.cond")) return()
if(debug.cond=="all"|| (name %in% debug.cond) ){
cat(name,":\n"); obj<-eval(parse(text=name))
if(is.vector(obj)){ print(obj) }
return()
}
}
#:29
#1:
##################################################################
#Description: #
# stem.leaf produces a stem-and-leaf-display of a data set #
# #
#Usage: #
# stem.leaf(data) #
# stem.leaf(data,unit=100,m=5,Min=50,Max=1000,rule.line="Dixon"#
# #
#Arguments: #
# data: vector of input data #
# unit: unit of leafs in: { ...,100,10,1,.1,.01,... } #
# m: 1, 2 or 5 -- 10/m=number of possible leaf digits #
# Min: minimum of stem #
# Max: maximum of stem #
# rule.line: = "Dixon" => number of lines <- 10*log(n,10) #
# = "Velleman" => number of lines <- 2*sqrt(n) #
# = "Sturges" => number of lines <- 1 + log(n,2) #
# style: = "Tukey" => Tukey-like stem ( m = 2, 5 ) #
# trim.outliers=TRUE => outliers are printed absent #
# depths =TRUE => depths info is printed #
# reverse.negative.leaves=TRUE => neg.leaves are rev. sorted #
#Author: #
# Peter Wolf 05/2003 (modified slightly by J. Fox, 20 July 03) #
##################################################################
#:1
#3:
#5:
n<-length(data<-sort(data))
row.max <- floor( c(Dixon =10*log(n,10),
Velleman=2*sqrt(n),
Sturges =1+log(n,2) ))[rule.line]
#:5
#6:
stats<-boxplot(data,plot=F)
if(missing(Min)) Min <- if (trim.outliers) stats$stats[1,1] else min(data, na.rm=TRUE)
if(missing(Max)) Max <- if (trim.outliers) stats$stats[5,1] else max(data, na.rm=TRUE)
spannweite.red<-Max - Min
#:6
#8:
zeilen.intervall.laenge<-spannweite.red / row.max
if(missing(unit)){
factor <- 10^ceiling(log(zeilen.intervall.laenge,10))
} else factor <- 10^round(log(unit*10,10))
debug.show("factor")
#:8
#9:
z<-zeilen.intervall.laenge/factor # z in (0.1 ,1]
delta.tick<-c(.2,.2,.5,1)[sum(z>c(0,.1,.2,.5))]
#:9
#10:
if(missing(m)) m<-round(1/delta.tick) else delta.tick<-1/m
debug.show("delta.tick"); debug.show("m")
#:10
#11:
data.tr<-data/factor
Min.tr <- Min/factor
Max.tr <- Max/factor
#:11
#12:
spannweite.red<-Max.tr - Min.tr
sk.min<- floor(Min.tr)
sk.max<-ceiling(Max.tr)
skala <- seq(sk.min,sk.max,by=delta.tick)
if(sk.min<0) skala<-c(sk.min-delta.tick,skala)
if(sk.max<0) skala<-skala[-length(skala)]
debug.show("skala")
#:12
#:3
#13:
#14:
lo.limit <- if (trim.outliers) skala[1] else -Inf
lo.log <- if(skala[1 ] < 0) data.tr <= lo.limit else data.tr < lo.limit
n.sk <- length(skala)
hi.limit <- if (trim.outliers) skala[n.sk] + delta.tick else Inf
hi.log <- if(skala[n.sk] >= 0) data.tr >= hi.limit else data.tr > hi.limit
n.lower.extr.values <- sum(lo.log); n.upper.extr.values <- sum(hi.log)
if(0<n.lower.extr.values){
lower.line<- paste("LO:", paste(data[lo.log],collapse=" "))
}
if(0<n.upper.extr.values){
upper.line<- paste("HI:", paste(data[hi.log],collapse=" "))
}
data.tr.red <-data.tr[(!lo.log)&(!hi.log)]
#:14
#15:
#16:
stem <- ifelse(data.tr.red<0, ceiling(data.tr.red), floor(data.tr.red) )
leaf <- floor(abs(data.tr.red*10-stem*10))
debug.show("leaf"); debug.show("stem")
#:16
#17:
class.of.data.tr<-unlist(c(
sapply(data.tr.red[data.tr.red< 0],
function(x,sk)length(sk)-sum(-sk<=-x),skala)
,sapply(data.tr.red[data.tr.red>=0],
function(x,sk) sum( sk<= x),skala)
))
debug.show("class.of.data.tr")
class.of.data.tr <- c(1:length(skala),class.of.data.tr)
leaf.grouped <- split(c(rep(-1,length(skala)),leaf),class.of.data.tr)
leaf.grouped <- lapply(leaf.grouped, function(x){ sort(x[-1]) })
# debug.show("leaf.grouped")
#:17
#18:
leaf.grouped.ch <- paste("|",unlist(lapply(leaf.grouped,paste,collapse="")))
# debug.show("leaf.grouped")
#:18
#19:
#20:
class.negative <- skala < 0
class.neg.zero <- floor(skala) == -1
#:20
#21:
if (reverse.negative.leaves){
for (i in seq(class.negative))
if (class.negative[i]) leaf.grouped[[i]] <- rev(leaf.grouped[[i]])
}
#:21
#22:
line.names <- skala
line.names[class.negative] <- line.names[class.negative]+1
line.names <- as.character(floor(line.names))
line.names[class.neg.zero] <- "-0"
#:22
#23:
if(style=="Tukey"){
switch(as.character(m),
"1"={},
"2"={
h<-round(2*(skala%%1)) #; line.names[h!=0] <- ""
line.names<-paste(line.names,
ifelse(skala<0,c(".","*")[1+h],c("*",".")[1+h]),sep="")
},
"5"={
h<-round(5*(skala%%1)); line.names[h>0 & h<4] <- ""
line.names<-paste(line.names, ifelse(skala<0,
c(".","s","f","t","*")[1+h],
c("*","t","f","s",".")[1+h]), sep="")
}
)
}
#24:
ragged.left<-function(ch.lines){
max.n <-max(n.lines<-nchar(ch.lines))
h <-paste(rep(" ",max.n),collapse="")
ch.lines <-paste( substring(h,1,1+max.n-n.lines), ch.lines)
ch.lines
}
#:24
line.names <- ragged.left(line.names)
#:23
#:19
#25:
n.class<-unlist(lapply(leaf.grouped,length))
select <- (cumsum(n.class) > 0) & rev((cumsum(rev(n.class)) > 0))
depth <- cumsum(n.class) + n.lower.extr.values
depth.rev<-rev(cumsum(rev(n.class)) + n.upper.extr.values)
debug.show("depth")
uplow<-depth>=depth.rev
pos.median<-which(uplow)[1] + (-1:0)
h <- abs(depth[pos.median]-depth.rev[pos.median])
pos.median<-pos.median[1]+(h[1]>h[2])
debug.show("pos.median")
depth[uplow]<-depth.rev[uplow]
depth<-paste(depth,"")
depth[pos.median]<-paste("(",n.class[pos.median],")",sep="")
depth[n.class==0]<-" "
depth <- if (depths) ragged.left(depth) else ""
#:25
#:15
#26:
info<- c( paste("1 | 2: represents",1.2*factor),
# paste(" m:",m ),
paste(" leaf unit:",factor/10),
paste(" n:",n ))
#:26
#:13
#27:
stem <- paste(depth, line.names, leaf.grouped.ch)
stem <- if((m!=5)||sum(select)>4) stem[select] else stem
result<-list( stem=stem)
if(exists("lower.line")) result<-c(lower=lower.line,result)
if(exists("upper.line")) result<-c(result,upper=upper.line)
result<-c(list( info=info), result)
# for(i in seq(result)) cat(result[[i]],sep="\n")
cat(unlist(result),sep="\n")
invisible(result)
#:27
}
#:2
# stem.leaf -- end
###############################
#:15
#17:
F.dach<-function(xy,breaks,xlim,...){
#16:
F.dach.local<-function(x,breaks,xlim,...){
if(is.null(breaks)){
if(missing(xlim)||length(xlim)!=2) xlim<-range(pretty(x)) #R
if(0==diff(xlim)) xlim<-xlim+c(-1,1) #R
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)
breaks<-unique(breaks)
counts<-table(cut(x,breaks))
F.x<-cumsum(counts)/length(x)
if(missing(xlim)||length(xlim)!=2) xlim<-range(pretty(breaks)) #R
if(0==diff(xlim)) xlim<-xlim+c(-1,1) #R
plot(c(min(x),max(x)),0:1,type="n",xlim=xlim,xlab="x",ylab="F.dach")
lines(breaks,c(0,F.x),...)
}
}
#:16
if(is.matrix(xy)) xy<-split(xy,col(xy))
if(!is.list(xy)) xy<-list(xy) #R
if(missing(breaks)) breaks<-NULL
if(missing(xlim)||length(xlim)!=2) xlim<-range(pretty(unlist(xy))) #R
if(0==diff(xlim)) xlim<-xlim+c(-1,1) #R
i<- 0
oldpar<-par()$lty
for(el in xy){
if (length(breaks) != 0 && (max(breaks) < max(el) || #R
min(breaks) > min(el))) { #R
breaks <- sort(c(min(el), breaks, max(el))) #R
print("Warnung: Klassengrenzen zu eng!->wurden angepasst!")#R
} #R #R
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)
}
}
#:17
#18:
F.dach.look.up<-function(x){
#print("ACHTUNG: bitte zweimal Punkt im F.dach-Plot anklicken!!!!")
readline("ACHTUNG: bitte zweimal Punkt im F.dach-Plot anklicken!!!! -- RETURN")
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])
result
}
#:18
#19:
scatter<-function(xy,xlim,ylim,hull=0,...){
if(is.matrix(xy)) xy<-split(xy,col(xy))
if(!is.list(xy)) xy<-list(xy) #R
if(missing(xlim)||length(xlim)!=2) xlim<-range(pretty(unlist(xy[1]))) #R
if(0==diff(xlim)) xlim<-xlim+c(-1,1) #R
if(missing(ylim)||length(ylim)!=2) ylim<-range(pretty(unlist(xy[2]))) #R
if(0==diff(ylim)) ylim<-ylim+c(-1,1) #R
namen<-names(xy)[1:2]
xy<-list(as.vector(xy[[1]]),as.vector(xy[[2]])) #R
if(is.null(namen)) namen<-c("x","y")
if(length(xy[[1]])!=length(xy[[2]])){ #R
print("WARNUNG: Laengen von x und y unterschiedlich!") #R
n<-min(length(xy[[1]]),length(xy[[2]])) #R
xy[[1]]<-xy[[1]][1:n]; xy[[2]]<-xy[[2]][1:n] #R
} #R
plot(xy[[1]],xy[[2]],xlim=xlim,ylim=ylim,xlab=namen[1],ylab=namen[2],...)
if(hull>0){
# definition of local hull-function
HULL <- function(xy, anz.hull=0){
hull.local<-function(xy,uniq=T,graph=F,newplot=F){
n<-dim(xy)[1]
if(3>=n) {if(n==0) return(list(xy,NULL)) else return(list(xy,1:n)) }
xy.in<-xy
eps<-.0001*abs(diff(range(xy[,1])))
xy<-xy[order(xy[,2]),]
xy<-xy[order(xy[,1]),]
if(uniq==F){
h<-!((0==diff(xy[,1])) & (0==diff(xy[,2])))
xy<-xy[c(T,h),]
n<-dim(xy)[1]
}
if(newplot)plot(xy)
xyh<-xy
index.xmin<-(1:n)[xy[,1]==min(xy[,1])]
if(length(index.xmin)>1){
h<-xy[index.xmin,2]
index.xmin<-index.xmin[h==min(h)]
}
pktu<-start.pkt<-xy[index.xmin,]
index.xmax<-(1:n)[xy[,1]==max(xy[,1])]
if(length(index.xmax)>1){
h<-xy[index.xmax,2]
index.xmax<-index.xmax[h==max(h)]
}
pkto<-end.pkt<-xy[index.xmax,]
xyh<-xyh[-index.xmin,,drop=F]
chull<-matrix(start.pkt,1,2)
repeat{
dy.durch.dx<-(xyh[,2]-pktu[2])/pmax(eps,xyh[,1]-pktu[1])
new<-dy.durch.dx==min(dy.durch.dx)
if(sum(new)>1) new<-new&(1==cumsum(new))
pktu<-xyh[new,]
h<-xyh[,1]<pktu[1] | new
xyh<-xyh[!h,,drop=F]
chull<-rbind(chull,pktu)
if(graph) points(pktu[1],pktu[2],col=2)
if(all(pktu==end.pkt)) break
}
xyh<-xy
xyh<-xyh[-index.xmax,,drop=F]
repeat{
xybak<-xyh; pktbak<-pkto
dy.durch.dx<-(pkto[2]-xyh[,2])/pmax(eps,pkto[1]-xyh[,1])
new<-dy.durch.dx==min(dy.durch.dx)
if(sum(new)>1) new<-new&(1==rev(cumsum(rev(new))))
pkto<-xyh[new,]
h<-xyh[,1]>pkto[1] | new
xyh<-xyh[!h,,drop=F]
if(graph)points(pkto[1],pkto[2],col=2)
if(all(pkto==start.pkt)) break
chull<-rbind(chull,pkto)
}
index.of.points<-match(sin(chull[,1])+cos(chull[,2]),
sin(xy.in[,1])+cos(xy.in[,2]))
return(list(chull,index.of.points))
}
old <- par()$lty
anz<-1
repeat{
if(length(xy[[1]])<3) break
if(anz.hull<anz)break
anz<-anz+1
h<-hull.local(cbind(xy[[1]],xy[[2]]),F)
polygon(h[[1]][,1], h[[1]][,2], density = 0, lty = anz)
xy[[1]]<-xy[[1]][-h[[2]]]
xy[[2]]<-xy[[2]][-h[[2]]]
}
par(lty = old)
}
HULL(xy[1:2],hull)
}
}
#:19
#20:
dichtespur<-function(xy,xlim,width,...){
if(is.matrix(xy)) xy<-split(xy,col(xy))
if(!is.list(xy)) xy<-list(xy) #R
if(missing(xlim)||length(xlim)!=2) xlim<-range(pretty(unlist(xy))) #R
if(0==diff(xlim)) xlim<-xlim+c(-1,1) #R
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] #R
}
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)
}
}
#:20
#21:
histogramm<-function(xy,xlim,breaks,nclass ){
if(missing(xlim)||length(xlim)!=2) #R
xlim<-range(pretty(c(min(unlist(xy)),max(unlist(xy)))))#R
if(0==diff(xlim)) xlim<-xlim+c(-1,1) #R
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(no.readonly=TRUE) #R
par(mfrow=c(length(xy),1))
for(i in 1:length(xy)){
if(length(breaks)==0|| #R
max(breaks)<max(xy[[i]])||min(breaks)>min(xy[[i]])){ #R
print("Warnung: Klassengrenzen zu eng!->wurden angepasst!")#R
breaks<-pretty(xy[[i]]) #R
} #R
hist(xy[[i]], breaks=breaks, xlim=xlim, probability=T,
xlab=getnames(xy)[i],ylab="f.dach",main="")
}
par(OLDPAR)
} else{
if(length(breaks)==0|| #R
max(breaks)<max(xy)||min(breaks)>min(xy)){ #R
print("Warnung: Klassengrenzen zu eng!->wurden angepasst!")#R
breaks<-pretty(xy) #R
} #R
hist(xy,xlim=xlim,breaks=breaks,probability=T, #R
main="",xlab="x",ylab="f.dach") #R
}
}
histogramm<-function(xy,xlim,breaks,nclass ){
if(missing(xlim)||length(xlim)!=2) #R
xlim<-range(pretty(c(min(unlist(xy)),max(unlist(xy)))))#R
if(0==diff(xlim)) xlim<-xlim+c(-1,1) #R
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(no.readonly=TRUE) #R
par(mfrow=c(length(xy),1))
for(i in 1:length(xy)){
if(length(breaks)==0|| #R
max(breaks)<max(xy[[i]])||min(breaks)>min(xy[[i]])){ #R
print("Warnung: Klassengrenzen zu eng!->wurden angepasst!")#R
breaks<-pretty(xy[[i]]) #R
} #R
hist(xy[[i]], breaks=breaks, xlim=xlim, probability=T,
xlab=getnames(xy)[i],ylab="f.dach",main="")
}
par(OLDPAR)
} else{
if(length(breaks)==0|| #R
max(breaks)<max(xy)||min(breaks)>min(xy)){ #R
print("Warnung: Klassengrenzen zu eng!->wurden angepasst!")#R
breaks<-pretty(xy) #R
} #R
hist(xy,xlim=xlim,breaks=breaks,probability=T, #R
main="",xlab="x",ylab="f.dach") #R
}
}
#:21
#22:
qqpairsplot<-function(xy){
OLDPAR<-par(no.readonly=TRUE) #R
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)
}
#:22
#23:
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.list(xy)) return(l.summary(xy)) else return(lapply(xy,l.summary)) #R
}
#:23
#24:
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] #R
} else { lam<-lambda }
if(is.null(lam))lam<-1
if(length(lam)<n) lam<-as.vector(matrix(lam,n,1))
if(is.list(xy))
for(i in 1:n)
xy[[i]]<-if(lam[i]==0){log(xy[[i]])}else{(xy[[i]]^lam[i]-1)/lam[i]}
if(is.matrix(xy))
for(i in 1:n)
xy[[,i]]<-if(lam[i]==0){log(xy[[,i]])}else{(xy[[,i]]^lam[i]-1)/lam[i]}
if(!(is.matrix(xy)|is.list(xy)))
xy<-if(lam==0){log(xy)}else{(xy^lam-1)/lam}
return(xy)
}
#:24
#25:
remove.extreme.values<-function(xy){
xy.is.list<-is.list(xy)
xy.is.matrix<-is.matrix(xy)
if(xy.is.matrix){xy.dim<-dim(xy); xy.names<-names(xy)}
bak<-xy
if(xy.is.list){
for(i in 1:length(xy)){
print(paste("Komponente: ",getnames(xy)[i]))
print(paste("Die Werte der",i,"-ten Komponente liegen in"))
print(range(xy[[i]]))
print("Bis zu welcher Untergrenze sollen Werte von der")
print(paste(i,"-ten Komponente entfernt werden?"))
ug<-c(scan(,0,n=1),min(xy[[i]]))[1] #R
print("Ab welcher Obergrenze sollen Werte von der")
print(paste(i,"-ten Komponente entfernt werden?"))
og<-c(scan(,0,n=1),max(xy[[i]]))[1] #R
h<-xy[[i]][ug<=xy[[i]]&xy[[i]]<=og]
if(length(h)==0){
cat("ERROR: Sie haetten alle Werte entfernt! Uebergangen!\n")
next
} else xy[[i]]<-h
}
} else {
print(paste("Die Werte liegen in"))
print(range(xy))
print("Bis zu welcher Untergrenze sollen Werte")
print("entfernt werden?")
ug<-c(scan(,0,n=1),min(xy))[1] #R
print("Ab welcher Obergrenze sollen Werte")
print("entfernt werden?")
og<-c(scan(,0,n=1),max(xy))[1] #R
if(xy.is.matrix){
h<-xy[apply(xy<=ug,1,"|")&apply(xy<=og,1,"|"),]
} else {
h<-xy[ug<=xy&xy<=og]
}
if(length(h)==0){
cat("ERROR: Sie haetten alle Werte entfernt! Abbruch\n")
return(xy)
} else xy<-h
}
xy
}
#:25
#26:
limit.values<-function(xy){
xy.is.matrix<-is.matrix(xy)
if(xy.is.matrix){xy.dim<-dim(xy); xy.names<-names(xy)}
xy.is.list<-is.list(xy)
if(xy.is.list){
for(i in 1:length(xy)){
print(paste("Komponente: ",getnames(xy)[i]))
print(paste("Die Werte der",i,"-ten Komponente liegen in"))
print(range(xy[[i]]))
print("Bis zu welcher Untergrenze sollen KLEINE Werte von der")
print(paste(i,"-ten Komponente angehoben werden?"))
ug<-c(scan(,0,n=1),min(xy[[i]]))[1] #R
print("Bis zu welcher Obergrenze sollen GROSSE Werte gesenkt werden?")
og<-c(scan(,0,n=1),max(xy[[i]]))[1] #R
xy[[i]]<-pmin(og,pmax(ug,xy[[i]]))
}
} else {
print(paste("Die Werte liegen in"))
print(range(xy))
print("Bis zu welcher Untergrenze sollen KLEINE Werte angehoben werden?")
ug<-c(scan(,0,n=1),min(xy))[1] #R
print("Bis zu welcher Obergrenze sollen GROSSE Werte gesenkt werden?")
og<-c(scan(,0,n=1),max(xy))[1] #R
xy<-pmin(og,pmax(ug,xy))
if(xy.is.matrix){dim(xy)<-xy.dim; names(xy)<-xy.names}
}
xy
}
#:26
#27:
split.in.eq.classes<-function(xy,anz=4){
if(missing(anz)){
print("Auf wie viele gleich grosse Klassen sollen")
print("die Daten verteilt werden?")
anz<-c(scan(,0,n=1),4)[1] #R
}
xy<-unlist(xy)
xy<-matrix(xy[1:(floor(length(xy)/anz)*anz)],ncol=anz)
xy<-split(xy,col(xy))
}
#:27
#28:
split.x.by.y<-function(x,y,anz=4){
if(missing(anz)){
print("Wie viele Klassen sollen aus der zweiten")
print("Variablen gebildet werden,")
print("um danach die erste zu klassifizieren?")
anz<-c(scan(,0,n=1),4)[1] #R
}
h<-quantile(range(y),(1:(anz-1))/anz )
hh<-rep(1,length(y))
for(i in h) hh<-hh+(y>i)
if(length(x)<length(hh)) hh<-hh[1:length(x )]
if(length(x)>length(hh)) x <-x [1:length(hh)]
xy<-split(x,hh)
xy
}
#:28
#29:
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] #R
}
if(missing(ZZ)){
print("Zufallsgeneratorstart? ZZ=")
set.seed(ZZ<-c(scan(,0,n=1),13)[1]) #R
}
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.x=h) #R
} 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.x=as.character(1:n.ds)) #R
}
stichproben
}
#:29
#30:
kt.work<-function(xy,is.xy.kt=F){
#31:
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){
#34:
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}
}
#:34
}
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)]
#35:
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)]
#:35
#36:
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
#:36
#:31
repeat{
#32:
cat("Auswahl:")
wahl<-menu(c(
"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"))
#:32
#33:
if(wahl==0)break
abbruch<-FALSE #R
switch(1+wahl,
abbruch<-TRUE, #R
{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)},
{
#37:
print("Welche Zeile?")
i<-scan(,0,n=1) #R
cat("absolute Haeufigkeiten\n")
print(kt.abs[i,])
cat("relative Haeufigkeiten\n")
print(kt.rel[i,]/kt.rel[i,ncol(kt.rel)])
#:37
},
{
#38:
print("Welche Spalte?")
j<-scan(,0,n=1) #R
cat("absolute Haeufigkeiten\n")
print(kt.abs[,j])
cat("relative Haeufigkeiten\n")
print(kt.rel[,j]/kt.rel[nrow(kt.rel),j])
#:38
}
)
if(abbruch){abbruch<-FALSE;break} #R
#:33
}
}
#:30
#39:
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")
}
#:39
#40:
binomial.calculator<-function(x.F,n,p){
#41:
print("binomial.calculator start")
if(missing(n)){
print("Bitte n eingeben! (Default: n=1) n=?")
n<-c(scan(,0,n=1),1)[1] #R
}
if(missing(p)){
print("Bitte p eingeben! (Default: p=0.5) p=?")
p<-c(scan(,0,n=1),.5)[1] #R
}
#:41
#42:
if(missing(x.F)){
a<-1
#43:
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) )
}
#:43
} 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)))
}
}
#:42
repeat{
#44:
print("Auswahl von binomial.calculator")
auswahl<-c("n eingeben","p eingeben",
"f(x) und F(x) berechnen","Quantile berechnen",
"Statistiken von aX berechnen","Plot erstellen")
wahl<-menu(auswahl)
#:44
#45:
abbruch<-FALSE #R
switch(1+wahl,
abbruch<-TRUE, #R
{
print("Bitte n eingeben! (Default: n=1) n=?")
n<-c(scan(,0,n=1),1)[1] #R
},
{
print("Bitte p eingeben! (Default: p=0.5) p=?")
p<-c(scan(,0,n=1),.5)[1] #R
},
{
print("Bitte x eingeben! x=?")
x<-scan(,0,n=n+1); if(0==length(x)) x<-0:n #R
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) #R
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] #R
#43:
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) )
}
#:43
},
{
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)
}
)
if(abbruch){abbruch<-FALSE;break} #R
#:45
}
}
#:40
#46:
geometric.calculator<-function(x.F,p){
#47:
print("geometric.calculator start")
if(missing(p)){
print("Bitte p eingeben! (Default: p=0.5) p=?")
p<-c(scan(,0,n=1),.5)[1] #R
}
#:47
#48:
if(missing(x.F)){
#49:
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) )
#:49
} 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)))
}
}
#:48
repeat{
#50:
print("Auswahl von geometric.calculator")
auswahl<-c("p eingeben",
"f(x) und F(x) berechnen","Quantile berechnen",
"Statistiken berechnen","Plot erstellen")
wahl<-menu(auswahl)
#:50
#51:
abbruch<-FALSE #R
switch(1+wahl,
abbruch<-TRUE, #R
{
print("Bitte p eingeben! (Default: p=0.5) p=?")
p<-c(scan(,0,n=1),.5)[1] #R
},
{
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 #R
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+1) #R
print("Quantile:")
print(cbind("eingegeben:F(x)"=F.x,x=qgeom(F.x,p)))
},
{
#49:
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) )
#:49
},
{
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)
}
)
if(abbruch){abbruch<-FALSE;break} #R
#:51
}
}
#:46
#52:
exponential.calculator<-function(x.F,lambda){
#53:
print("exponential.calculator start")
if(missing(lambda)){
print("Bitte lambda eingeben! (Default: lambda=1) lambda=?")
lambda<-c(scan(,0,n=1),1)[1] #R
}
#:53
#54:
if(missing(x.F)){
#55:
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) )
#:55
} 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)))
}
}
#:54
repeat{
#56:
print("Auswahl von exponential.calculator")
auswahl<-c("lambda eingeben",
"f(x) und F(x) berechnen","Quantile berechnen",
"Statistiken berechnen","Plot erstellen")
wahl<-menu(auswahl)
#:56
#57:
abbruch<-FALSE #R
switch(1+wahl,
abbruch<-TRUE, #R
{
print("Bitte lambda eingeben! (Default: lambda=1) lambda=?")
lambda<-c(scan(,0,n=1),1)[1] #R
},
{
print("Bitte x eingeben! x=?")
x<-scan(,0); if(0==length(x)) x<-(0:20)/20*(3/lambda) #R
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) #R
print("Quantile:")
print(cbind("eingegeben:F(x)"=F.x,x=qexp(F.x,lambda)))
},
{
#55:
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) )
#:55
},
{
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)")
}
)
if(abbruch){abbruch<-FALSE;break} #R
#:57
}
}
#:52
#58:
poisson.calculator<-function(x.F,lambda){
#59:
print("poisson.calculator start")
if(missing(lambda)){
print("Bitte lambda eingeben! (Default: lambda=1) lambda=?")
lambda<-c(scan(,0,n=1),1)[1] #R
}
#:59
#60:
if(missing(x.F)){
#61:
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) )
#:61
} 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)))
}
}
#:60
repeat{
#62:
print("Auswahl von poisson.calculator")
auswahl<-c("lambda eingeben",
"f(x) und F(x) berechnen","Quantile berechnen",
"Statistiken berechnen","Plot erstellen")
wahl<-menu(auswahl)
#:62
#63:
abbruch<-FALSE #R
switch(1+wahl,
abbruch<-TRUE, #R
{
print("Bitte lambda eingeben! (Default: lambda=1) lambda=?")
lambda<-c(scan(,0,n=1),1)[1] #R
},
{
print("Bitte x eingeben! x=?")
x<-scan(,0); if(0==length(x)) x<-qpois(.01,lambda):qpois(.99,lambda) #R
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) #R
print("Quantile:")
print(cbind("eingegeben:F(x)"=F.x,x=qpois(F.x,lambda)))
},
{
#61:
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) )
#:61
},
{
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)
}
)
if(abbruch){abbruch<-FALSE;break} #R
#:63
}
}
#:58
#64:
normal.calculator<-function(x.F,mu,sigma){
#65:
print("normal.calculator start")
if(missing(mu)){
#66:
print("Bitte Mittel eingeben! (Default: mu=0) mu=?")
mu<-c(scan(,0,n=1),0)[1] #R
#:66
}
if(missing(sigma)){
#67:
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)")
#S h<-c(scan(,0,n=1),0)[1]
h<-c(scan(,0,n=1),0)[1] #R
if(h!=1){
print("Bitte STANDARDABWEICHUNG festlegen! (Default: 1) sigma=?")
sigma<-abs(c(scan(,0,n=1),1)[1]) #R
} else {
print("Bitte VARIANZ festlegen! (Default: 1) sigma^2=?")
sigma<-abs(c(scan(,0,n=1),1)[1])^0.5 #R
}
#:67
}
if(missing(x.F)) x.F<-mu+(-3:3)*sigma
#:65
#68:
if(missing(x.F)){
#69:
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) )
#:69
#72:
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))
#:72
} 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)))
}
}
#:68
repeat{
#70:
print("Auswahl von normal.calculator")
auswahl<-c("Mittel festsetzen","Variabilitaet festlegen",
"f(x), F(x), (1-F(x)) berechnen","Quantile berechnen",
"X verschieben", "X skalieren")
wahl<-menu(auswahl)
#:70
#71:
abbruch<-FALSE #R
switch(1+wahl,
abbruch<-TRUE, #R
{
#66:
print("Bitte Mittel eingeben! (Default: mu=0) mu=?")
mu<-c(scan(,0,n=1),0)[1] #R
#:66
#69:
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) )
#:69
#72:
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))
#:72
},
{
#67:
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)")
#S h<-c(scan(,0,n=1),0)[1]
h<-c(scan(,0,n=1),0)[1] #R
if(h!=1){
print("Bitte STANDARDABWEICHUNG festlegen! (Default: 1) sigma=?")
sigma<-abs(c(scan(,0,n=1),1)[1]) #R
} else {
print("Bitte VARIANZ festlegen! (Default: 1) sigma^2=?")
sigma<-abs(c(scan(,0,n=1),1)[1])^0.5 #R
}
#:67
#69:
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) )
#:69
#72:
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))
#:72
},
{
print("Bitte x eingeben! x=?")
x.F<-scan(,0) #R
if(0==length(x.F)) x.F<-mu+(-3:3)*sigma
#69:
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) )
#:69
#72:
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))
#:72
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) #R
#69:
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) )
#:69
print("Quantile:")
x.F<-qnorm(Fx,mu,sigma)
print(cbind("F(x)"=Fx,x=x.F))
#72:
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))
#:72
},
{
print("Die Zufallsvariable wird um b verschoben.")
print("Bitte b eingeben (Default: b==0) b=?")
b<-c(scan(,0,n=1),0)[1] #R
mu<-mu+b
#69:
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) )
#:69
#72:
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))
#:72
},
{
print("Die Zufallsvariable wird um a gestreckt.")
print("Bitte a eingeben (Default: a==1) a=?")
a<-c(scan(,0,n=1),1)[1] #R
if(a==0){ print("ERROR: a==0") } else {
mu<-a*mu
sigma<-abs(a)*sigma
#69:
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) )
#:69
#72:
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))
#:72
}
}
)
if(abbruch){abbruch<-FALSE;break} #R
#:71
}
}
#:64
#73:
demo.Laplace<-function(n=10,p=0.5){
#74:
par(mfrow=c(1,2))
#:74
repeat{
#75:
cat("Geben Sie n ein! n=?\n")
n<-max(1,floor(c(scan(,0,n=1),n)[1])) #R
cat("Geben Sie p ein! p=?\n")
p<-c(scan(,0,n=1),p)[1] #R
p<-max(.0001,min(.9999,p))
#:75
#77:
sigma<-((mu<-n*p)*(1-p))^0.5
x<-0:n; if(n>19)x<-x[x>mu-5*sigma&x<mu+5*sigma]
y<-dbinom(x,n,p)
if(n>19){
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))
#:77
#78:
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)")
#:78
#76:
cat("Wollen Sie die Funktion beenden? (j=ja)\n")
wahl<-c(scan(,"",n=1),"n")[1] #R
if(wahl=="j") break
#:76
}
#79:
par(mfrow=c(1,1))
#:79
}
#:73
#80:
demo.zgws<-function(model="norm",n=10,runs=100,...){
#81:
#82:
init.abschnitt<-T #R
ynorm<-pnorm(xnorm<-(-80:80)/20)
#87:
cat("Modell / Aus welcher Verteilung sollen\n")
cat("Stichproben gezogen werden (Default: Normalverteilung)?\n")
wahl<-menu(c(
"Normalverteilung",
"Exponentialverteilung",
"Gleichverteilung",
"Cauchy-Verteilung",
"Binomialverteilung",
"Poisson-Verteilung"))
if(wahl==0) {if(init.abschnitt) return() else break } #R
abbruch<-FALSE #R
switch(1+wahl,
abbruch<-TRUE, #R
{
cat("Bitte Mittel der Normalverteilung eingeben (Default: 0)!\n")
mue<-c(scan(,0,n=1),0)[1] #R
cat("Bitte Standardabweichung eingeben (Default: 1)!\n")
sigma<-c(scan(,0,n=1),1)[1] #R
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] #R
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] #R
cat("Bitte Obergrenze eingeben (Default: 1)!\n")
og<-c(scan(,0,n=1),1)[1] #R
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] #R
cat("Bitte Skalenparameter eingeben (Default: 1)!\n")
sigma<-c(scan(,0,n=1),1)[1] #R
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]) #R
cat("Bitte p eingeben (Default: 0.5)!\n")
p<-c(scan(,0,n=1),0.5)[1] #R
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] #R
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
if(abbruch){abbruch<-FALSE;break} #R
cat("Bitte Umfang der einzelnen Stichproben eingeben! (Default: 5)\n")
n<-max(1,min(floor(c(scan(n=1),5)[1]),100000)) #R
cat("Bitte Umfang der Wiederholungen eingeben! (Default: 100)\n")
runs<-max(1,min(floor(c(scan(n=1),100)[1]),10000)) #R
cat("Bitte Start des Zufallszahlengenerators eingeben! (Default: 13)\n")
#S set.seed(max(1,min(floor(c(scan(n=1),13)[1]),999)))
set.seed(max(1,min(floor(c(scan(n=1),13)[1]),999))) #R
#:87
par(mfrow=1:2)
init.abschnitt<-F #R
#:82
repeat{
#84:
x<-eval(parse(text=realisiere.stpr))
x<-matrix(x,n,runs)
#:84
#85:
xsum<-apply(x,2,sum)
xsum<-xsum-mean(xsum)
xsum<-xsum/sqrt(var(xsum))
#:85
#86:
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])
#:86
#87:
cat("Modell / Aus welcher Verteilung sollen\n")
cat("Stichproben gezogen werden (Default: Normalverteilung)?\n")
wahl<-menu(c(
"Normalverteilung",
"Exponentialverteilung",
"Gleichverteilung",
"Cauchy-Verteilung",
"Binomialverteilung",
"Poisson-Verteilung"))
if(wahl==0) {if(init.abschnitt) return() else break } #R
abbruch<-FALSE #R
switch(1+wahl,
abbruch<-TRUE, #R
{
cat("Bitte Mittel der Normalverteilung eingeben (Default: 0)!\n")
mue<-c(scan(,0,n=1),0)[1] #R
cat("Bitte Standardabweichung eingeben (Default: 1)!\n")
sigma<-c(scan(,0,n=1),1)[1] #R
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] #R
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] #R
cat("Bitte Obergrenze eingeben (Default: 1)!\n")
og<-c(scan(,0,n=1),1)[1] #R
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] #R
cat("Bitte Skalenparameter eingeben (Default: 1)!\n")
sigma<-c(scan(,0,n=1),1)[1] #R
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]) #R
cat("Bitte p eingeben (Default: 0.5)!\n")
p<-c(scan(,0,n=1),0.5)[1] #R
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] #R
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
if(abbruch){abbruch<-FALSE;break} #R
cat("Bitte Umfang der einzelnen Stichproben eingeben! (Default: 5)\n")
n<-max(1,min(floor(c(scan(n=1),5)[1]),100000)) #R
cat("Bitte Umfang der Wiederholungen eingeben! (Default: 100)\n")
runs<-max(1,min(floor(c(scan(n=1),100)[1]),10000)) #R
cat("Bitte Start des Zufallszahlengenerators eingeben! (Default: 13)\n")
#S set.seed(max(1,min(floor(c(scan(n=1),13)[1]),999)))
set.seed(max(1,min(floor(c(scan(n=1),13)[1]),999))) #R
#:87
}
#83:
par(mfrow=c(1,1))
#:83
#:81
}
#:80
#88:
qq.x.model<-function(x,model,parameter){
#89:
mods<-c("norm","exp","pois","geom","lnorm")
if(missing(model)){
cat("Welches Modell?\n")
wahl<-menu(c("Normalverteilung",
"Exponentialverteilung",
"Poisson-Verteilung",
"geometrische Verteilung",
"Lognormalverteilung"))
wahl<-max(1,wahl) # sicherheitshalber
model<-mods[wahl]
}
model<-model[1]
if(is.character(model[1])) model<-(1:length(mods))[mods==model]
if(0==length(model) || 1<length(model) || !any((1:length(mods))==model)){
print("ERROR: Modell nicht im Angebot!"); break
}
if(missing(parameter)){
parameter<-switch(model,
c(mean(x),var(x)^0.5), # norm
1/mean(x),# exp
mean(x), # Poisson
length(x)/(sum(x)+length(x)), # geom
c(mean(log(x)),var(log(x))^0.5) # lnorm
)
}
#:89
#90:
p<-((1:length(x))-0.5)/length(x)
y<-switch(model,
qnorm(p,parameter[1],parameter[2]), # norm
qexp(p,parameter), # exp
qpois(p,parameter), # Poisson
qgeom(p,parameter), # geom
qlnorm(p,parameter[1],parameter[2]) # lnorm
)
#:90
#91:
x<-sort(x)
if(model!=5){
plot(x,y,xlab="Daten",ylab=mods[model])
}else{
plot(x,y,log="xy",xlab="Daten",ylab=mods[model])
}
abline(0,1)
title("QQ-Plot")
#:91
}
#:88
#92:
identify.exp<-function(x,cut.off=4/5){
n<-length(x)
x<- sort(x)
y<- -log(1-((1:n)-.5)/n)
plot(x,y,xlab="x",ylab="-log(1-F.dach(x))")
h<-floor(n*cut.off)
r<-c(lsfit(x[1:h],y[1:h],intercept=F)$coef) #R
if(length(r)==1) r<-c(0,r) #R
abline(r)
if(length(r)==2) r<-r[2] #R
names(r)<-"lambda.dach"
r
}
#:92
#93:
identify.pois<-function(x){
y<-table(x); h<- y>1
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(lsfit(x,y)$coef) #R
abline(r)
r<- c(-r[1],exp(r[2]))
names(r)<-c("lambda.dach1","lambda.dach2")
r
}
#:93
#94:
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)
if(length(h)>1){
abline(r<-lsfit(xx[1:h],log(yy[1:h]/n))$coef)
r<-abs((0:1)-exp(r))
names(r)<-c("p aus Achsenabschnitt","p aus Steigung")
}else{
print("Warnung: Keine Schaetzung moeglich!")
r<-c(0,0)
}
return(r)
}
#:94
#95:
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) #R
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))
}
#:95
#96:
#:96
#97:
select.spalte<-function(dm=matrix(runif(100),10,10)){ #R
#98:
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
#:98
#99:
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] #R
wahl<-floor(wahl)
wahl<-wahl[wahl<=nspalten & wahl>0]
if(0==length(wahl)){
print("ERROR: Falsche Eingabe - ABBRUCH")
break
}
dm.h<-dm[,wahl]
#:99
#100:
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) #R
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) #R
cat("\n")
switch(relation, log.vec<-key < zahl,
log.vec<-key ==zahl,
log.vec<-key > zahl)
dm.h<-dm.h[log.vec]
}
#:100
#101:
dm.out<-dm.h
return(dm.out)
#:101
}
#:97
#102:
select.and.split<-function(dm=matrix(runif(100),10,10)){
#103:
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 koennen 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)
#:103
#104:
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) #R
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
}
#:104
#105:
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) #R
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]))
}
}
}
#:105
#106:
return(dm.h)
#:106
}
#:102
#108:
auswahl.masszahlen<-function(){
abbruch<-FALSE
repeat{
switch(1+menu(c(
"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"),title="Auswahl: Masszahlen")
,{ abbruch<-TRUE
},{ switch(1+menu( c(
"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"
),title="Auswahl: Datensatz"
),
"",
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)
)
assign("x",x,,envir=pos.to.env(match(".GlobalEnv",search())))
assign("x",x,,envir=revive.env)
},{ cat("Daten x: \n"); print(x)
},{ cat("Rangwertreihe von x: \n"); print(sort(x))
},{ 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()=="j") x<-xtrans
assign("x",x,,envir=pos.to.env(match(".GlobalEnv",search())))
assign("x",x,,envir=revive.env)
}
) # end of switch
if(abbruch){abbruch<-F; break}
.Return()
} # end of repeat
} # end of Menu Masszahlen
#:108
#109:
auswahl.graphiken<-function(){
abbruch<-FALSE
repeat{
switch(1+menu(c(
"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"),title="Auswahl: Graphiken")
,{ abbruch<-TRUE
},{ switch(1+menu( c(
"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"
),title="Auswahl: Datensatz"
),
"",
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)
)
assign("x",x,,envir=pos.to.env(match(".GlobalEnv",search())))
assign("x",x,,envir=revive.env)
},{ cat("Entfernung extremer Werte\n")
x<-remove.extreme.values(x)
assign("x",x,,envir=pos.to.env(match(".GlobalEnv",search())))
assign("x",x,,envir=revive.env)
},{ 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))
},{ cat("Stem-and-Leaf-Plot\n")
stem.leaf(x)
},{ cat("Histogramm\n")
histogramm(x)
},{ cat("Histogramm mit manuell eingegebenen Klassengrenzen\n")
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\n")
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()=="j") x<-xtrans
}
) # end of switch
if(abbruch){abbruch<-F; break}
.Return()
} # end of repeat
} # end of fns
#:109
#110:
auswahl.mgraphiken<-function(){
abbruch<-FALSE
repeat{
switch(1+menu(c(
"lege Datensaetze zur Bearbeitung auf xy ab",
"modifiziere Datensaetze xy",
"lege einen Datensatz von xy auf x ab",
"ermittle einige Masszahlen 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" ),title="Auswahl: multivariate Graphiken")
,{ abbruch<-TRUE
},{ 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
abbruch<-FALSE #R
repeat{
cat("Welche Datensaetze sollen an xy angefuegt werden?\n")
switch(1+menu( c(
"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"
),title="Auswahl: Datenauswahl"
),
abbruch<-TRUE, #R
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)
)
if(abbruch){abbruch<-FALSE;break} #R
}
assign("xy",xy,,envir=pos.to.env(match(".GlobalEnv",search())))
assign("xy",xy,,envir=revive.env)
},{ switch(1+menu( c(
"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"),title="Auswahl: Operation"
),
{ " "
},{ 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]])
}
)
assign("xy",xy,,envir=pos.to.env(match(".GlobalEnv",search())))
assign("xy",xy,,envir=revive.env)
},{ 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]]
assign("x",x,,envir=pos.to.env(match(".GlobalEnv",search())))
assign("x",x,,envir=revive.env)
},{ abbruch<-FALSE #R
switch(1+menu( c(
"zusammenfassende Statistiken",
"Anzahlen der einzelnen Datensaetze",
"Korrelationskoeffizienten"),title="Auswahl: Operation"
),
{ abbruch<-TRUE #R
},{ 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]]))
}
)
if(abbruch){abbruch<-FALSE;break}
},{ 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")
opar<-par(no.readonly=T); par(mfrow=2:1)
cat("F.dach zu xy zeichnen\n")
F.dach(xy)
cat("Dichtespuren zu xy\n")
dichtespur(xy)
par(opar)
},{ 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()))
}
) # end of switch
if(abbruch){abbruch<-FALSE;break}
.Return()
} # end of repeat
} # end of fns
#:110
#111:
auswahl.modelle<-function(){
abbruch<-FALSE
repeat{
switch(1+menu(c(
"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"),,title="Auswahl: Modelle")
,{ abbruch<-TRUE
},{ cat("Datensatz auswaehlen!\n")
switch(1+menu(c(
"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"),title="Auswahl: Datensatz"
),
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))}
)
assign("x",x,,envir=pos.to.env(match(".GlobalEnv",search())))
assign("x",x,,envir=revive.env)
},{ switch(1+menu( c(
"Binomial-Verteilung",
"geometrische Verteilung",
"Exponentialverteilung",
"Poisson-Verteilung" ),title="Auswahl: 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)
}
)
assign("x",x,,envir=pos.to.env(match(".GlobalEnv",search())))
assign("x",x,,envir=revive.env)
},{ switch(1+menu(c(
"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" ),title="Auswahl: Operation"
),{ 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()=="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
}
)
assign("x",x,,envir=pos.to.env(match(".GlobalEnv",search())))
assign("x",x,,envir=revive.env)
},{ switch(1+menu(c(
"Daten anzeigen",
"Statistiken berechnen",
"horizontale Staebe zeichnen",
"Darstellung von Beobachtungen, diskret",
"Darstellung von Beobachtungen, kontinuierlich" ),title="Auswahl: Darstellung"
),{ 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]])
},{ cat("Zusammenfassende Statistiken\n")
print(summary.stats(x))
},{ 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(1+menu(c(
"Binomial-Verteilung",
"geometrische Verteilung",
"Exponentialverteilung",
"Poisson-Verteilung",
"Normal-Verteilung"
),title="Auswahl: 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(1+menu(c(
"geometrische Verteilung",
"Exponentialverteilung",
"Poisson-Verteilung" ),title="Auswahl: 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)
}
) # end of switch
if(abbruch){abbruch<-FALSE;break}
.Return()
} # end of repeat
} # end of fns
#:111
print("robj: Objekte erfolgreich eingerichtet")
#:1
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.