10  COM X[103,22],M[19,19],U[19,19],Q[20],V[20],P[78]
30  COM M$[60],N$[72]
40  COM N,K,N8,K8,N9,K9,Q9,Q7,Q5,Q4,Q3,Q2,Q1
45  COM I3,I4,U9,X$[20]
50  REM:29MAY74
52  REM:  COMPUTING MEANS AND STD.DEV.(S)
100  DIM A$[12],C$[7],D$[12]
110  PRINT 
120  IF I4=0 THEN 9998
130  Q[3]=1
140  IF Q[1]=0 THEN 302
150  IF Q[8]=0 THEN 250
250  I1=I3
252  I2=I4
254  J1=1
256  J2=K
260  IF Q[6]=47 THEN 283
261  IF I3=I4 THEN 500
262  REM:UPDATING FOR DELB,RETB,RECO,SELR
264  GOTO 284
281  REM:UPDATING FOR APPO,APPB
283  N=N MAX I2
284  PRINT "UPDATING ";
286  GOTO 346
290  REM:  COMPUTING MEAN AND STD.DEV. FOR ALL ROWS 1 TO N AND ALL COL(S).
300  REM:  1 TO K.  Q(1) STILL 0. FOR ENTE,ENTS,ENRA, AND SOMETIMES CRSP,
301  REM:  RAND, AND INDEX
302  I3=1
306  K=I4
310  FOR I=1 TO N
320  X[I,K9+2]=1
330  NEXT I
335  Q4=1
340  PRINT "DATA MATRIX HAS"N"OBSERVATIONS ON"K"VARIABLE(S)"
342  PRINT 
344  PRINT "COMPUTING ";
346  PRINT "MEAN(S) AND STD.DEV.(S)...";
348  GOSUB 6010
350  GOSUB 6600
352  FOR J=1 TO K
354  GOSUB 6020
356  GOSUB 6700
358  NEXT J
360  PRINT 
362  IF Q[1]#0 THEN 428
364  Q[1]=1
365  REM:IF >ENTE,Q2=24, CHECK FOR NAMES
366  IF Q[6]=23 OR Q[6]=8 THEN 368
367  GOTO 394
368  IF Q3=0 THEN 394
370  PRINT 
372  PRINT "NAMES READ FROM DATA FILE ARE:"
374  FOR J=1 TO K
376  IF J>10 THEN 382
378  PRINT M$[6*J-5,6*J]
380  GOTO 386
382  Z=J-10
384  PRINT N$[6*Z-5,6*Z]
386  NEXT J
388  PRINT 
390  PRINT "WANT TO SUPPLY NEW NAMES(S) ";
392  GOTO 410
394  PRINT 
395  Q3=0
396  GOTO Q9 OF 398,408,408
398  PRINT "YOU MAY GIVE EACH VARIABLE A 1 TO 6 CHARACTER NAME."
400  PRINT "YOU ARE STRONGLY URGED TO SUPPLY NAMES FOR YOUR VARIABLES."
402  PRINT "IF YOU DO, SEQUENCE PLOTS, TABLES, ETC. WILL BE LABELED."
404  PRINT "IF YOU DON'T, YOU WILL HAVE TO CALL YOUR VARIABLES BY COL.#."
406  PRINT 
408  PRINT "WANT TO SUPPLY NAME(S) ";
410  INPUT A$
412  IF A$[1,1]="N" THEN 9998
414  IF Q9>1 THEN 418
416  PRINT "PLEASE GIVE NAME OF:"
418  FOR I=1 TO K
420  GOSUB 3000
422  NEXT I
424  Q3=1
426  GOTO 9998
428  IF Q[2]=0 THEN 9998
430  Q[4]=1
432  GOTO 9998
499  REM:UPDATING FOR DELO AND RETO
500  PRINT "UPDATING MEAN(S) AND STD.DEV.(S) ...";
505  GOSUB 6600
510  I=I3
520  IF Q1=5 THEN 600
530  GOSUB 6335
540  X[I,K9+2]=1
550  GOTO 620
600  GOSUB 6235
610  X[I,K9+2]=0
620  FOR J=1 TO K
622  GOSUB 6700
624  NEXT J
626  PRINT 
630  GOTO 428
690  REM
2999  REM
3000  PRINT  USING 3020;I
3020  IMAGE #,"VAR.",XDD,X
3030  INPUT D$
3040  IF I>10 THEN 3070
3050  M$[6*I-5,6*I]=D$[1,6]
3060  GOTO 3100
3070  N$[6*I-65,6*I-60]=D$[1,6]
3100  RETURN 
5980  REM
5990  REM
6010  FOR I8=Q4 TO N
6012  IF X[I8,K9+2]=1 THEN 6016
6014  NEXT I8
6016  RETURN 
6019  REM:COMPUTING MEAN,STD.DEV.
6020  I5=0
6025  I6=X[I8,J]
6030  FOR I=(I8+1) TO N
6040  I5=I5+X[I,K9+2]*(X[I,J]-I6)
6060  NEXT I
6070  J5=I6+I5/N0
6080  J6=0
6090  FOR I=I8 TO N
6100  IF X[I,K9+2]=0 THEN 6120
6110  J6=J6+(X[I,J]-J5)^2
6120  NEXT I
6130  X[N9+1,J]=J5
6140  X[N9+2,J]=SQR(J6/(N0-1))
6150  RETURN 
6200  REM:  DEL.OBS.
6230  IF X[I,K9+2]=0 THEN 6270
6235  FOR J=1 TO K
6240  X[N9+1,J]=N0*X[N9+1,J]/(N0-1)-X[I,J]/(N0-1)
6245  S=(N0-1)*X[N9+2,J]^2
6250  S=S-(X[I,J]-X[N9+1,J])^2*(N0-1)/N0
6255  X[N9+2,J]=SQR(S/(N0-2))
6260  NEXT J
6265  N0=N0-1
6270  RETURN 
6299  REM
6300  REM:  ADD OBS.
6330  IF X[I,K9+2]=0 THEN 6370
6335  FOR J=1 TO K
6340  X[N9+1,J]=N0*X[N9+1,J]/(N0+1)+X[I,J]/(N0+1)
6345  S=(N0-1)*X[N9+2,J]^2
6350  S=S+(X[I,J]-X[N9+1,J])^2*(N0+1)/N0
6355  X[N9+2,J]=SQR(S/N0)
6360  NEXT J
6365  N0=N0+1
6370  RETURN 
6599  REM
6600  REM: # OBS. IN COL.
6610  N0=0
6620  FOR J0=Q4 TO N
6630  N0=N0+X[J0,K9+2]
6640  NEXT J0
6650  RETURN 
6700  IF X[N9+2,J]=0 THEN 6760
6702  IF X[N9+1,J]=0 THEN 6770
6705  C=ABS(X[N9+2,J]/X[N9+1,J])
6710  IF C>.02 THEN 6770
6715  PRINT 
6720  PRINT LIN(1);"FOR VAR."J",ABS.(STD.DEV./MEAN) IS"C
6732  PRINT "MEAN IS "X[N9+1,J]
6734  PRINT "STD.DEV. IS "X[N9+2,J]
6740  PRINT "WARNING!"'7'10'13"ROUNDING ERRORS MAY BE LARGE."
6741  IF Q[6]=45 OR Q9>1 THEN 6770
6742  PRINT "YOU MAY WISH TO RECODE THE ORIGINAL DATA BY ADDING AN"
6744  PRINT "APPROPRIATE CONSTANT (POSSIBLY NEGATIVE) TO EACH"
6746  PRINT "OBSERVATION AND THEN RE-ENTER THE DATA."
6750  GOTO 6770
6760  PRINT 
6765  PRINT "COL."J" IS A CONSTANT EQUAL TO "X[N9+1,J];
6770  RETURN 
9912  CHAIN "$IDA12",Z
9998  CHAIN "$IDA",150
9999  END 
