File: agnes-ex.Rout.save

package info (click to toggle)
cluster 2.1.8.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,728 kB
  • sloc: ansic: 3,397; sh: 20; makefile: 2
file content (785 lines) | stat: -rw-r--r-- 26,183 bytes parent folder | download
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
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785

R version 4.0.3 Patched (2021-01-18 r79850) -- "Bunny-Wunnies Freak Out"
Copyright (C) 2021 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> library(cluster)
> options(digits = 6)
> data(votes.repub)
> 
> ## IGNORE_RDIFF_BEGIN
> source(system.file("test-tools.R", package = "cluster"), keep.source = FALSE)
Loading required package: tools
doExtras <- cluster:::doExtras() :  TRUE
> ## IGNORE_RDIFF_END
> ## -> showProc.time() ...  & doExtras
> 
> agn1 <- agnes(votes.repub, metric = "manhattan", stand = TRUE)
> summary(agn1)
Object of class 'agnes' from call:
 agnes(x = votes.repub, metric = "manhattan", stand = TRUE) 
Agglomerative coefficient:  0.797756 
Order of objects:
 [1] Alabama        Georgia        Arkansas       Louisiana      Mississippi   
 [6] South Carolina Alaska         Vermont        Arizona        Montana       
[11] Nevada         Colorado       Idaho          Wyoming        Utah          
[16] California     Oregon         Washington     Minnesota      Connecticut   
[21] New York       New Jersey     Illinois       Ohio           Indiana       
[26] Michigan       Pennsylvania   New Hampshire  Wisconsin      Delaware      
[31] Kentucky       Maryland       Missouri       New Mexico     West Virginia 
[36] Iowa           South Dakota   North Dakota   Kansas         Nebraska      
[41] Maine          Massachusetts  Rhode Island   Florida        North Carolina
[46] Tennessee      Virginia       Oklahoma       Hawaii         Texas         
Merge:
      [,1] [,2]
 [1,]   -7  -32
 [2,]  -13  -35
 [3,]  -12  -50
 [4,]    1  -30
 [5,]    2  -14
 [6,]  -26  -28
 [7,]   -5  -37
 [8,]  -15  -41
 [9,]  -22  -38
[10,]  -25  -31
[11,]    7  -47
[12,]  -21  -39
[13,]  -16  -27
[14,]    4    5
[15,]  -42  -46
[16,]  -20   10
[17,]   14    9
[18,]   -3    6
[19,]   -6    3
[20,]  -33   15
[21,]   17  -29
[22,]  -17   16
[23,]    8  -34
[24,]   21  -49
[25,]   22  -48
[26,]   -8   25
[27,]   19  -44
[28,]   11  -23
[29,]   28   24
[30,]  -11  -43
[31,]   18   27
[32,]   23   13
[33,]   29   26
[34,]   20  -36
[35,]   -1  -10
[36,]   32  -19
[37,]   31   33
[38,]   -9   34
[39,]   37   36
[40,]   35   -4
[41,]   -2  -45
[42,]   40  -18
[43,]  -24  -40
[44,]   39   12
[45,]   44   38
[46,]   41   45
[47,]   42   43
[48,]   46   30
[49,]   47   48
Height:
 [1] 27.36345 31.15453 35.61832 51.44421 35.69152 87.45523 31.58222 47.53682
 [9] 16.34184 11.49397 22.11426 16.35662 10.46294 19.03961 28.41137 11.70132
[17] 12.72838 19.07671 20.90246  8.38200 11.10094 12.92659  9.23004 11.37867
[25] 15.97442 12.70819 16.91515 17.74499 24.83533 18.78225 17.03525 15.77893
[33] 12.71848 18.52818 30.74557 12.55524 17.14634 22.33846 12.80419 27.38835
[41] 37.23685 12.79160 38.76377 29.38432 16.63215 14.75762 25.59605 53.03627
[49] 21.07684

1225 dissimilarities, summarized :
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   8.38   25.54   34.51   45.06   56.02  167.60 
Metric :  manhattan 
Number of objects : 50

Available components:
[1] "order"     "height"    "ac"        "merge"     "diss"      "call"     
[7] "method"    "order.lab" "data"     
> Dvr <- daisy(votes.repub)
> agn2 <- agnes(Dvr, method = "complete")
> summary(agn2)
Object of class 'agnes' from call:
 agnes(x = Dvr, method = "complete") 
Agglomerative coefficient:  0.88084 
Order of objects:
 [1] Alabama        Georgia        Louisiana      Arkansas       Florida       
 [6] Texas          Mississippi    South Carolina Alaska         Michigan      
[11] Connecticut    New York       New Hampshire  Indiana        Ohio          
[16] Illinois       New Jersey     Pennsylvania   Minnesota      North Dakota  
[21] Wisconsin      Iowa           South Dakota   Kansas         Nebraska      
[26] Arizona        Nevada         Montana        Oklahoma       Colorado      
[31] Idaho          Wyoming        Utah           California     Oregon        
[36] Washington     Missouri       New Mexico     West Virginia  Delaware      
[41] Kentucky       Maryland       North Carolina Tennessee      Virginia      
[46] Hawaii         Maine          Massachusetts  Rhode Island   Vermont       
Merge:
      [,1] [,2]
 [1,]  -12  -50
 [2,]   -7  -32
 [3,]  -14  -35
 [4,]  -13  -30
 [5,]  -25  -31
 [6,]  -37  -47
 [7,]  -21  -39
 [8,]   -3  -28
 [9,]    4  -38
[10,]  -16  -27
[11,]  -15  -41
[12,]    8  -26
[13,]   -2  -22
[14,]  -33  -42
[15,]   14  -46
[16,]    1  -44
[17,]  -11  -19
[18,]    2  -29
[19,]   -5    6
[20,]  -17  -20
[21,]  -34  -49
[22,]    5  -48
[23,]   18    3
[24,]   11   10
[25,]   23    9
[26,]  -23   21
[27,]   -8   20
[28,]   12  -36
[29,]   -6   16
[30,]   13   25
[31,]   28   29
[32,]   -1  -10
[33,]   19   22
[34,]   17    7
[35,]   -4   -9
[36,]   30   26
[37,]   35  -43
[38,]   32  -18
[39,]  -24  -40
[40,]   36   24
[41,]   27   15
[42,]   31   33
[43,]   38   37
[44,]   40   42
[45,]   34  -45
[46,]   43   39
[47,]   44   41
[48,]   47   45
[49,]   46   48
Height:
 [1]  48.2397  60.8984  72.9221  56.1363  58.8227 116.7048  63.0951 281.9508
 [9]  28.1437  47.1690  19.4218  32.9438  36.7643  20.2258  39.1728  20.8792
[17]  25.3229  56.3813  42.2230  33.6978  64.5254  26.1547  37.4564  25.9221
[25]  80.4894  23.4206  27.8273  43.4492  48.0483  43.7055  17.1992  31.1988
[33]  70.4868  33.2328  22.1831  54.3057  21.1413  35.1129 121.4022  43.3829
[41]  33.4744  66.7591  29.5099  30.1541 178.4119  32.7611  55.3633  22.6334
[49]  83.1040

1225 dissimilarities, summarized :
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   17.2    48.3    64.7    82.2   105.5   282.0 
Metric :  euclidean 
Number of objects : 50

Available components:
[1] "order"     "height"    "ac"        "merge"     "diss"      "call"     
[7] "method"    "order.lab"
> ## almost same:
> (ag2. <- agnes(Dvr, method= "complete", keep.diss=FALSE))
Call:	 agnes(x = Dvr, method = "complete", keep.diss = FALSE) 
Agglomerative coefficient:  0.88084 
Order of objects:
 [1] Alabama        Georgia        Louisiana      Arkansas       Florida       
 [6] Texas          Mississippi    South Carolina Alaska         Michigan      
[11] Connecticut    New York       New Hampshire  Indiana        Ohio          
[16] Illinois       New Jersey     Pennsylvania   Minnesota      North Dakota  
[21] Wisconsin      Iowa           South Dakota   Kansas         Nebraska      
[26] Arizona        Nevada         Montana        Oklahoma       Colorado      
[31] Idaho          Wyoming        Utah           California     Oregon        
[36] Washington     Missouri       New Mexico     West Virginia  Delaware      
[41] Kentucky       Maryland       North Carolina Tennessee      Virginia      
[46] Hawaii         Maine          Massachusetts  Rhode Island   Vermont       
Height (summary):
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   17.2    28.1    39.2    52.3    58.8   282.0 

Available components:
[1] "order"     "height"    "ac"        "merge"     "diss"      "call"     
[7] "method"    "order.lab"
> ag22  <- agnes(votes.repub, method= "complete", keep.diss=FALSE,keep.data=FALSE)
> stopifnot(identical(agn2[-5:-6], ag2.[-5:-6]),
+           identical(Dvr, daisy(votes.repub)), # DUP=FALSE (!)
+           identical(ag2.[-6], ag22[-6])
+          )
> 
> data(agriculture)
> summary(agnes(agriculture))
Object of class 'agnes' from call:
 agnes(x = agriculture) 
Agglomerative coefficient:  0.781893 
Order of objects:
 [1] B   NL  D   F   UK  DK  L   I   GR  P   E   IRL
Merge:
      [,1] [,2]
 [1,]   -1  -10
 [2,]   -2   -9
 [3,]    1   -3
 [4,]    3   -6
 [5,]   -5   -7
 [6,]    4  -12
 [7,]    6    2
 [8,]   -4  -11
 [9,]    7   -8
[10,]    8    5
[11,]    9   10
Height:
 [1]  1.64924  2.24836  2.76918  4.02677  4.78835  2.22036  5.29409 14.77963
 [9]  5.16236  8.55075  3.14006

66 dissimilarities, summarized :
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   1.65    4.36    7.99    9.59   13.25   24.04 
Metric :  euclidean 
Number of objects : 12

Available components:
[1] "order"     "height"    "ac"        "merge"     "diss"      "call"     
[7] "method"    "order.lab" "data"     
> 
> data(ruspini)
> summary(ar0 <- agnes(ruspini, keep.diss=FALSE, keep.data=FALSE))
Object of class 'agnes' from call:
 agnes(x = ruspini, keep.diss = FALSE, keep.data = FALSE) 
Agglomerative coefficient:  0.947954 
Order of objects:
 [1] 1  2  3  5  4  6  8  7  9  10 14 15 17 16 18 19 11 12 13 20 61 62 66 63 64
[26] 68 65 67 69 70 71 72 75 73 74 21 22 23 24 27 28 29 30 25 26 32 35 31 36 39
[51] 40 33 34 37 38 41 42 43 44 45 49 51 53 50 54 52 55 56 57 59 60 58 46 47 48
Merge:
      [,1] [,2]
 [1,]  -18  -19
 [2,]  -55  -56
 [3,]  -27  -28
 [4,]  -49  -51
 [5,]  -33  -34
 [6,]  -23  -24
 [7,]  -67  -69
 [8,]  -59  -60
 [9,]  -29  -30
[10,]  -36  -39
[11,]  -32  -35
[12,]  -50  -54
[13,]  -25  -26
[14,]  -16    1
[15,]  -70  -71
[16,]  -64  -68
[17,]  -37  -38
[18,]   12  -52
[19,]  -62  -66
[20,]  -12  -13
[21,]   -9  -10
[22,]  -42  -43
[23,]  -15  -17
[24,]  -47  -48
[25,]  -21  -22
[26,]    7   15
[27,]    2  -57
[28,]    4  -53
[29,]   10  -40
[30,]    3    9
[31,]  -73  -74
[32,]  -72  -75
[33,]  -11   20
[34,]   13   11
[35,]   -6   -8
[36,]  -14   23
[37,]   -2   -3
[38,]  -65   26
[39,]    5   17
[40,]   25    6
[41,]   36   14
[42,]   34  -31
[43,]   -4   35
[44,]   28   18
[45,]   27    8
[46,]   19  -63
[47,]  -46   24
[48,]   -1   37
[49,]   16   38
[50,]   40   30
[51,]   42   29
[52,]   33  -20
[53,]   49   32
[54,]   51   39
[55,]   21   41
[56,]   48   -5
[57,]   45  -58
[58,]   53   31
[59,]   43   -7
[60,]   50   54
[61,]   44   57
[62,]  -41   22
[63,]  -61   46
[64,]   55   52
[65,]   63   58
[66,]  -44  -45
[67,]   59   64
[68,]   56   67
[69,]   66   61
[70,]   60   62
[71,]   69   47
[72,]   70   71
[73,]   68   65
[74,]   73   72
Height:
 [1]   9.26758   6.40312  12.13789  22.37868   7.63441   6.32456  14.58991
 [8]  21.63544   4.12311  12.07902   6.36396   4.24264   7.23741   3.56155
[15]   1.41421  16.38921   5.85486   4.12311  10.69547  67.75052  15.48443
[22]   4.12311   8.94386  17.00500   3.60555   9.53375   6.46443   2.82843
[29]   4.48680   3.60555  10.91541   5.83095  14.34411   5.65685 101.14200
[36]   4.47214   6.98022   2.23607   9.56136   2.00000   5.61339   2.82843
[43]  14.95692   3.16228   6.19728   3.00000   7.28356   9.97147   3.00000
[50]   5.47542  11.07404   2.23607   6.60456   3.60555  24.90532  15.45463
[57]   4.24264  64.42555  17.02939  22.56493   2.23607   5.22383   8.28122
[64]   3.16228   3.81721  15.20808   2.00000   5.19258   8.51123   2.82843
[71]  12.62990  34.72475   9.14005   4.47214

Available components:
[1] "order"     "height"    "ac"        "merge"     "diss"      "call"     
[7] "method"    "order.lab"
> summary(ar1 <- agnes(ruspini, metric = "manhattan"))
Object of class 'agnes' from call:
 agnes(x = ruspini, metric = "manhattan") 
Agglomerative coefficient:  0.946667 
Order of objects:
 [1] 1  2  3  5  4  6  8  7  9  10 14 16 18 19 15 17 11 12 13 20 61 62 66 63 73
[26] 74 64 68 65 67 69 70 71 72 75 21 22 23 24 27 28 29 30 25 26 32 35 31 36 39
[51] 40 33 34 37 38 41 42 43 44 45 49 51 53 50 54 52 55 56 57 59 60 58 46 47 48
Merge:
      [,1] [,2]
 [1,]  -55  -56
 [2,]  -27  -28
 [3,]  -18  -19
 [4,]  -49  -51
 [5,]  -36  -39
 [6,]  -33  -34
 [7,]  -32  -35
 [8,]  -23  -24
 [9,]  -67  -69
[10,]  -59  -60
[11,]  -50  -54
[12,]  -29  -30
[13,]  -25  -26
[14,]  -16    3
[15,]  -70  -71
[16,]  -64  -68
[17,]  -62  -66
[18,]   11  -52
[19,]  -37  -38
[20,]  -12  -13
[21,]   -9  -10
[22,]    9   15
[23,]    1  -57
[24,]  -47  -48
[25,]  -42  -43
[26,]  -21  -22
[27,]  -15  -17
[28,]    4  -53
[29,]    2   12
[30,]    5  -40
[31,]    6   19
[32,]   13    7
[33,]  -11   20
[34,]  -73  -74
[35,]  -72  -75
[36,]   -6   -8
[37,]  -65   22
[38,]  -14   14
[39,]   -2   -3
[40,]   32  -31
[41,]   38   27
[42,]   26    8
[43,]   28   18
[44,]  -46   24
[45,]   -4   36
[46,]   23   10
[47,]   -1   39
[48,]   42   29
[49,]   33  -20
[50,]   37   35
[51,]   40   30
[52,]   17  -63
[53,]   16   50
[54,]   51   31
[55,]   46  -58
[56,]   21   41
[57,]   47   -5
[58,]   45   -7
[59,]   52   34
[60,]  -44  -45
[61,]   48   54
[62,]   43   55
[63,]   59   53
[64,]   56   49
[65,]  -41   25
[66,]  -61   63
[67,]   57   58
[68,]   67   64
[69,]   60   62
[70,]   61   65
[71,]   69   44
[72,]   70   71
[73,]   68   66
[74,]   73   72
Height:
 [1]  11.50000   9.00000  16.00000  26.25000  10.00000   8.00000  16.66667
 [8]  28.70833   5.00000  15.50000   8.66667   4.00000   2.00000   9.25000
[15]   6.00000  20.50000   7.50000   5.00000  12.33333  94.33333  22.78571
[22]   5.00000  12.50000  18.00000   8.00000  20.20000   5.00000  13.78571
[29]   8.25000   4.00000   5.50000   5.00000  12.40000   8.00000 125.71357
[36]   6.00000   9.50000   3.00000  11.87500   2.00000   7.00000   4.00000
[43]  18.72917   4.00000   7.50000   3.00000   9.25000  12.40000   3.00000
[50]   7.50000  14.43750   3.00000   7.50000   5.00000  32.38333  21.00000
[57]   6.00000  85.49616  18.00000  28.75000   3.00000   6.50000   9.55556
[64]   4.00000   5.00000  19.61111   2.00000   6.00000  11.00000   4.00000
[71]  15.40000  47.02381  10.00000   6.00000

2775 dissimilarities, summarized :
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
    2.0    52.5    97.0    91.0   128.0   187.0 
Metric :  manhattan 
Number of objects : 75

Available components:
[1] "order"     "height"    "ac"        "merge"     "diss"      "call"     
[7] "method"    "order.lab" "data"     
> str(ar1)
List of 9
 $ order    : int [1:75] 1 2 3 5 4 6 8 7 9 10 ...
 $ height   : num [1:74] 11.5 9 16 26.2 10 ...
 $ ac       : num 0.947
 $ merge    : int [1:74, 1:2] -55 -27 -18 -49 -36 -33 -32 -23 -67 -59 ...
 $ diss     : 'dissimilarity' num [1:2775] 11 12 29 13 25 43 33 22 27 39 ...
  ..- attr(*, "Size")= int 75
  ..- attr(*, "Metric")= chr "manhattan"
  ..- attr(*, "Labels")= chr [1:75] "1" "2" "3" "4" ...
 $ call     : language agnes(x = ruspini, metric = "manhattan")
 $ method   : chr "average"
 $ order.lab: chr [1:75] "1" "2" "3" "5" ...
 $ data     : num [1:75, 1:2] 4 5 10 9 13 13 12 15 18 19 ...
  ..- attr(*, "dimnames")=List of 2
  .. ..$ : chr [1:75] "1" "2" "3" "4" ...
  .. ..$ : chr [1:2] "x" "y"
 - attr(*, "class")= chr [1:2] "agnes" "twins"
> 
> showProc.time()
Time (user system elapsed): 0.602 0.061 0.667 
> 
> summary(ar2 <- agnes(ruspini, metric="manhattan", method = "weighted"))
Object of class 'agnes' from call:
 agnes(x = ruspini, metric = "manhattan", method = "weighted") 
Agglomerative coefficient:  0.942387 
Order of objects:
 [1] 1  2  3  5  9  10 14 16 18 19 15 17 4  6  8  7  11 12 13 20 61 64 68 65 67
[26] 69 70 71 62 66 63 72 75 73 74 21 22 23 24 27 28 29 30 25 26 32 35 31 36 39
[51] 40 33 34 37 38 41 42 43 44 45 49 51 53 50 54 52 55 56 57 59 60 58 46 47 48
Merge:
      [,1] [,2]
 [1,]  -55  -56
 [2,]  -27  -28
 [3,]  -18  -19
 [4,]  -49  -51
 [5,]  -36  -39
 [6,]  -33  -34
 [7,]  -32  -35
 [8,]  -23  -24
 [9,]  -67  -69
[10,]  -59  -60
[11,]  -50  -54
[12,]  -29  -30
[13,]  -25  -26
[14,]  -16    3
[15,]  -70  -71
[16,]  -64  -68
[17,]  -62  -66
[18,]   11  -52
[19,]  -37  -38
[20,]  -12  -13
[21,]   -9  -10
[22,]    9   15
[23,]    1  -57
[24,]  -47  -48
[25,]  -42  -43
[26,]  -21  -22
[27,]  -15  -17
[28,]    4  -53
[29,]    2   12
[30,]    5  -40
[31,]    6   19
[32,]   13    7
[33,]  -11   20
[34,]  -73  -74
[35,]  -72  -75
[36,]  -14   14
[37,]   -6   -8
[38,]  -65   22
[39,]   36   27
[40,]   -2   -3
[41,]   32  -31
[42,]   28   18
[43,]   26    8
[44,]  -46   24
[45,]   -4   37
[46,]   23   10
[47,]   -1   40
[48,]   16   38
[49,]   43   29
[50,]   17  -63
[51,]   41   30
[52,]   33  -20
[53,]   35   34
[54,]   46  -58
[55,]   47   -5
[56,]   51   31
[57,]   21   39
[58,]   45   -7
[59,]  -44  -45
[60,]  -61   48
[61,]   42   54
[62,]   49   56
[63,]  -41   25
[64,]   55   57
[65,]   60   50
[66,]   65   53
[67,]   58   52
[68,]   59   61
[69,]   64   67
[70,]   62   63
[71,]   68   44
[72,]   70   71
[73,]   69   66
[74,]   73   72
Height:
 [1]  11.5000   9.0000  15.2500  21.7734   5.0000  15.8750   8.0000   4.0000
 [9]   2.0000   9.0000   6.0000  32.1172  10.0000   8.0000  16.0000  27.9062
[17]   7.5000   5.0000  13.2500  97.9766  18.3125   5.0000  11.8750   8.2500
[25]   4.0000   5.5000   5.0000  22.3438   5.0000  12.5000  23.7812   8.0000
[33]  14.5000   8.0000 114.9764   6.0000   9.5000   3.0000  11.8750   2.0000
[41]   7.0000   4.0000  20.2031   4.0000   7.5000   3.0000   9.2500  12.6250
[49]   3.0000   7.5000  15.6875   3.0000   7.5000   5.0000  33.5469  21.0000
[57]   6.0000  69.4453  18.0000  28.4375   3.0000   6.5000   9.5000   4.0000
[65]   5.0000  19.1250   2.0000   6.0000  10.5000   4.0000  15.0000  41.5312
[73]  10.0000   6.0000

2775 dissimilarities, summarized :
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
    2.0    52.5    97.0    91.0   128.0   187.0 
Metric :  manhattan 
Number of objects : 75

Available components:
[1] "order"     "height"    "ac"        "merge"     "diss"      "call"     
[7] "method"    "order.lab" "data"     
> print  (ar3 <- agnes(ruspini, metric="manhattan", method = "flexible",
+                      par.method = 0.5))
Call:	 agnes(x = ruspini, metric = "manhattan", method = "flexible",      par.method = 0.5) 
Agglomerative coefficient:  0.942387 
Order of objects:
 [1] 1  2  3  5  9  10 14 16 18 19 15 17 4  6  8  7  11 12 13 20 61 64 68 65 67
[26] 69 70 71 62 66 63 72 75 73 74 21 22 23 24 27 28 29 30 25 26 32 35 31 36 39
[51] 40 33 34 37 38 41 42 43 44 45 49 51 53 50 54 52 55 56 57 59 60 58 46 47 48
Height (summary):
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   2.00    5.00    8.12   14.22   15.58  114.98 

Available components:
[1] "order"     "height"    "ac"        "merge"     "diss"      "call"     
[7] "method"    "order.lab" "data"     
> stopifnot(all.equal(ar2[1:4], ar3[1:4], tol=1e-12))
> 
> showProc.time()
Time (user system elapsed): 0.003 0.001 0.004 
> 
> ## Small example, testing "flexible" vs "single"
> i8 <- -c(1:2, 9:10)
> dim(agr8 <- agriculture[i8, ])
[1] 8 2
> i5 <- -c(1:2, 8:12)
> dim(agr5 <- agriculture[i5, ])
[1] 5 2
> 
> ##' Check equivalence of method "flexible" (par=...)  with one
> ##' of ("single", "complete", "weighted")
> chk <- function(d, method=c("single", "complete", "weighted"),
+                 trace.lev = 1,
+                 iC = -(6:7), # <- not using 'call' and 'method' for comparisons
+                 doplot = FALSE, tol = 1e-12)
+ {
+     if(!inherits(d, "dist")) d <- daisy(d, "manhattan")
+     method <- match.arg(method)
+     par.meth <- list("single" =  c(.5, .5, 0, -.5),
+                      "complete"= c(.5, .5, 0, +.5),
+                      "weighted"= c(0.5))
+     a.s <- agnes(d, method=method, trace.lev=trace.lev)
+     ## From theory, this should give the same, but it does not --- why ???
+     a.f <- agnes(d, method="flex", par.method = par.meth[[method]], trace.lev=trace.lev)
+ 
+     if(doplot) {
+ 	op <- par(mfrow = c(2,2), mgp = c(1.6, 0.6, 0), mar = .1 + c(4,4,2,1))
+         on.exit(par(op))
+         plot(a.s)
+         plot(a.f)
+     }
+     structure(all.equal(a.s[iC], a.f[iC], tolerance = tol),
+               fits = list(s = a.s, f = a.f))
+ }
> 
> chk(agr5, trace = 3)
C agnes(n=5, method = 2, ..): 4 merging steps
 nmerge=0, j=2, d_min = D(1,4) = 3.40000;  -> (-1,-4); last=4; upd(n,b);
 old D(A, j), D(B, j), j=2  = (31.5,28.1);  new D(A', 2) = 28.1
 old D(A, j), D(B, j), j=3  = (14.7,11.3);  new D(A', 3) = 11.3
 old D(A, j), D(B, j), j=5  = (18.3,14.9);  new D(A', 5) = 14.9
 -->  size(A_new)= 2
 nmerge=1, j=2, d_min = D(3,5) = 3.60000;  -> (-3,-5); last=5;
 old D(A, j), D(B, j), j=1  = (11.3,14.9);  new D(A', 1) = 11.3
 old D(A, j), D(B, j), j=2  = (16.8,13.2);  new D(A', 2) = 13.2
 -->  size(A_new)= 2
 nmerge=2, j=2, d_min = D(1,3) = 11.3000;  -> (1,2); last=4; upd(n,b);
 old D(A, j), D(B, j), j=2  = (28.1,13.2);  new D(A', 2) = 13.2
 -->  size(A_new)= 4
 nmerge=3, j=2, d_min = D(1,2) = 13.2000;  -> (3,-2); last=5;
 -->  size(A_new)= 5
C agnes(n=5, method = 6, ..): |par| = 4, alpha[1:4] = (0.5,0.5,0,-0.5); 4 merging steps
 nmerge=0, j=2, d_min = D(1,4) = 3.40000;  -> (-1,-4); last=4; upd(n,b);
 old D(A, j), D(B, j), j=2  = (31.5,28.1);  new D(A', 2) = 28.1
 old D(A, j), D(B, j), j=3  = (14.7,11.3);  new D(A', 3) = 11.3
 old D(A, j), D(B, j), j=5  = (18.3,14.9);  new D(A', 5) = 14.9
 -->  size(A_new)= 2
 nmerge=1, j=2, d_min = D(3,5) = 3.60000;  -> (-3,-5); last=5;
 old D(A, j), D(B, j), j=1  = (11.3,14.9);  new D(A', 1) = 11.3
 old D(A, j), D(B, j), j=2  = (16.8,13.2);  new D(A', 2) = 13.2
 -->  size(A_new)= 2
 nmerge=2, j=2, d_min = D(1,3) = 11.3000;  -> (1,2); last=4; upd(n,b);
 old D(A, j), D(B, j), j=2  = (28.1,13.2);  new D(A', 2) = 13.2
 -->  size(A_new)= 4
 nmerge=3, j=2, d_min = D(1,2) = 13.2000;  -> (3,-2); last=5;
 -->  size(A_new)= 5
[1] TRUE
attr(,"fits")
attr(,"fits")$s
Call:	 agnes(x = d, method = method, trace.lev = trace.lev) 
Agglomerative coefficient:  0.587879 
Order of objects:
[1] D   F   E   IRL GR 
Height (summary):
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   3.40    3.55    7.45    7.88   11.78   13.20 

Available components:
[1] "order"     "height"    "ac"        "merge"     "diss"      "call"     
[7] "method"    "order.lab"

attr(,"fits")$f
Call:	 agnes(x = d, method = "flex", par.method = par.meth[[method]],      trace.lev = trace.lev) 
Agglomerative coefficient:  0.587879 
Order of objects:
[1] D   F   E   IRL GR 
Height (summary):
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   3.40    3.55    7.45    7.88   11.78   13.20 

Available components:
[1] "order"     "height"    "ac"        "merge"     "diss"      "call"     
[7] "method"    "order.lab"

> 
> stopifnot(chk(agr5), chk(agr5, "complete", trace = 2), chk(agr5, "weighted"),
+           chk(agr8), chk(agr8, "complete"), chk(agr8, "weighted", trace.lev=2),
+           chk(agriculture), chk(agriculture, "complete"),
+           chk(ruspini), chk(ruspini, "complete"), chk(ruspini, "weighted"))
C agnes(n=5, method = 2, ..): 4 merging steps
C agnes(n=5, method = 6, ..): |par| = 4, alpha[1:4] = (0.5,0.5,0,-0.5); 4 merging steps
C agnes(n=5, method = 3, ..): 4 merging steps
 nmerge=0, j=2, d_min = D(1,4) = 3.40000; last=4; upd(n,b); size(A_new)= 2
 nmerge=1, j=2, d_min = D(3,5) = 3.60000; last=5; size(A_new)= 2
 nmerge=2, j=2, d_min = D(2,3) = 16.8000; last=4; size(A_new)= 3
 nmerge=3, j=2, d_min = D(1,2) = 31.5000; last=3; size(A_new)= 5
C agnes(n=5, method = 6, ..): |par| = 4, alpha[1:4] = (0.5,0.5,0,0.5); 4 merging steps
 nmerge=0, j=2, d_min = D(1,4) = 3.40000; last=4; upd(n,b); size(A_new)= 2
 nmerge=1, j=2, d_min = D(3,5) = 3.60000; last=5; size(A_new)= 2
 nmerge=2, j=2, d_min = D(2,3) = 16.8000; last=4; size(A_new)= 3
 nmerge=3, j=2, d_min = D(1,2) = 31.5000; last=3; size(A_new)= 5
C agnes(n=5, method = 5, ..): 4 merging steps
C agnes(n=5, method = 6, ..): 4 merging steps
C agnes(n=8, method = 2, ..): 7 merging steps
C agnes(n=8, method = 6, ..): |par| = 4, alpha[1:4] = (0.5,0.5,0,-0.5); 7 merging steps
C agnes(n=8, method = 3, ..): 7 merging steps
C agnes(n=8, method = 6, ..): |par| = 4, alpha[1:4] = (0.5,0.5,0,0.5); 7 merging steps
C agnes(n=8, method = 5, ..): 7 merging steps
 nmerge=0, j=2, d_min = D(1,4) = 3.40000; last=4; upd(n,b); size(A_new)= 2
 nmerge=1, j=2, d_min = D(3,5) = 3.60000; last=5; size(A_new)= 2
 nmerge=2, j=2, d_min = D(1,6) = 5.40000; last=6; upd(n,b); size(A_new)= 3
 nmerge=3, j=2, d_min = D(2,7) = 6.70000; last=7; upd(n,b); size(A_new)= 2
 nmerge=4, j=2, d_min = D(1,8) = 7.75000; last=8; upd(n,b); size(A_new)= 4
 nmerge=5, j=2, d_min = D(2,3) = 11.6500; last=7; size(A_new)= 4
 nmerge=6, j=2, d_min = D(1,2) = 18.3750; last=5; size(A_new)= 8
C agnes(n=8, method = 6, ..): 7 merging steps
 nmerge=0, j=2, d_min = D(1,4) = 3.40000; last=4; upd(n,b); size(A_new)= 2
 nmerge=1, j=2, d_min = D(3,5) = 3.60000; last=5; size(A_new)= 2
 nmerge=2, j=2, d_min = D(1,6) = 5.40000; last=6; upd(n,b); size(A_new)= 3
 nmerge=3, j=2, d_min = D(2,7) = 6.70000; last=7; upd(n,b); size(A_new)= 2
 nmerge=4, j=2, d_min = D(1,8) = 7.75000; last=8; upd(n,b); size(A_new)= 4
 nmerge=5, j=2, d_min = D(2,3) = 11.6500; last=7; size(A_new)= 4
 nmerge=6, j=2, d_min = D(1,2) = 18.3750; last=5; size(A_new)= 8
C agnes(n=12, method = 2, ..): 11 merging steps
C agnes(n=12, method = 6, ..): |par| = 4, alpha[1:4] = (0.5,0.5,0,-0.5); 11 merging steps
C agnes(n=12, method = 3, ..): 11 merging steps
C agnes(n=12, method = 6, ..): |par| = 4, alpha[1:4] = (0.5,0.5,0,0.5); 11 merging steps
C agnes(n=75, method = 2, ..): 74 merging steps
C agnes(n=75, method = 6, ..): |par| = 4, alpha[1:4] = (0.5,0.5,0,-0.5); 74 merging steps
C agnes(n=75, method = 3, ..): 74 merging steps
C agnes(n=75, method = 6, ..): |par| = 4, alpha[1:4] = (0.5,0.5,0,0.5); 74 merging steps
C agnes(n=75, method = 5, ..): 74 merging steps
C agnes(n=75, method = 6, ..): 74 merging steps
> 
> showProc.time()
Time (user system elapsed): 0.04 0.001 0.041 
> 
> ## an invalid "flexible" case - now must give error early:
> x <- rbind(c( -6, -9), c(  0, 13),
+            c(-15,  6), c(-14,  0), c(12,-10))
> (dx <- daisy(x, "manhattan"))
Dissimilarities :
   1  2  3  4
2 28         
3 24 22      
4 17 27  7   
5 19 35 43 36

Metric :  manhattan 
Number of objects : 5
> a.x <- tryCatch(agnes(dx, method="flexible", par = -.2),
+                 error = function(e)e)
> ##  agnes(method=6, par.method=*) lead to invalid merge; step 4, D(.,.)=-26.1216
> if(!inherits(a.x, "error")) stop("invalid 'par' in \"flexible\" did not give error")
> if(!all(vapply(c("par[.]method", "merge"), grepl, NA, x=a.x$message)))
+    stop("error message did not contain expected words")
> 
> 
> proc.time()
   user  system elapsed 
  0.767   0.094   0.859