red_amber 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/doc/DataFrame.md CHANGED
@@ -155,7 +155,25 @@ Class `RedAmber::DataFrame` represents 2D-data. A `DataFrame` consists with:
155
155
 
156
156
  ### `indices`, `indexes`
157
157
 
158
- - Returns all indexes in an Array.
158
+ - Returns indexes in an Array.
159
+ Accepts an option `start` as the first of indexes.
160
+
161
+ ```ruby
162
+ df = RedAmber::DataFrame.new(x: [1, 2, 3, 4, 5])
163
+ df.indices
164
+
165
+ # =>
166
+ [0, 1, 2, 3, 4]
167
+
168
+ df.indices(1)
169
+
170
+ # =>
171
+ [1, 2, 3, 4, 5]
172
+
173
+ df.indices(:a)
174
+ # =>
175
+ [:a, :b, :c, :d, :e]
176
+ ```
159
177
 
160
178
  ### `to_h`
161
179
 
@@ -372,13 +390,13 @@ penguins.to_rover
372
390
 
373
391
  ### `pick ` - pick up variables by key label -
374
392
 
375
- Pick up some variables (columns) to create a sub DataFrame.
393
+ Pick up some columns (variables) to create a sub DataFrame.
376
394
 
377
395
  ![pick method image](doc/../image/dataframe/pick.png)
378
396
 
379
397
  - Keys as arguments
380
398
 
381
- `pick(keys)` accepts keys as arguments in an Array.
399
+ `pick(keys)` accepts keys as arguments in an Array or a Range.
382
400
 
383
401
  ```ruby
384
402
  penguins.pick(:species, :bill_length_mm)
@@ -398,9 +416,31 @@ penguins.to_rover
398
416
  344 Gentoo 49.9
399
417
  ```
400
418
 
401
- - Booleans as a argument
419
+ - Indices as arguments
420
+
421
+ `pick(indices)` accepts indices as arguments. Indices should be Integers, Floats or Ranges of Integers.
422
+
423
+ ```ruby
424
+ penguins.pick(0..2, -1)
425
+
426
+ # =>
427
+ #<RedAmber::DataFrame : 344 x 4 Vectors, 0x0000000000055ce4>
428
+ species island bill_length_mm year
429
+ <string> <string> <double> <uint16>
430
+ 1 Adelie Torgersen 39.1 2007
431
+ 2 Adelie Torgersen 39.5 2007
432
+ 3 Adelie Torgersen 40.3 2007
433
+ 4 Adelie Torgersen (nil) 2007
434
+ 5 Adelie Torgersen 36.7 2007
435
+ : : : : :
436
+ 342 Gentoo Biscoe 50.4 2009
437
+ 343 Gentoo Biscoe 45.2 2009
438
+ 344 Gentoo Biscoe 49.9 2009
439
+ ```
440
+
441
+ - Booleans as arguments
402
442
 
403
- `pick(booleans)` accepts booleans as a argument in an Array. Booleans must be same length as `n_keys`.
443
+ `pick(booleans)` accepts booleans as arguments in an Array. Booleans must be same length as `n_keys`.
404
444
 
405
445
  ```ruby
406
446
  penguins.pick(penguins.types.map { |type| type == :string })
@@ -420,9 +460,9 @@ penguins.to_rover
420
460
  344 Gentoo Biscoe male
421
461
  ```
422
462
 
423
- - Keys or booleans by a block
463
+ - Keys or booleans by a block
424
464
 
425
- `pick {block}` is also acceptable. We can't use both arguments and a block at a same time. The block should return keys, or a boolean Array with a same length as `n_keys`. Block is called in the context of self.
465
+ `pick {block}` is also acceptable. We can't use both arguments and a block at a same time. The block should return keys, indices or a boolean Array with a same length as `n_keys`. Block is called in the context of self.
426
466
 
427
467
  ```ruby
428
468
  penguins.pick { keys.map { |key| key.end_with?('mm') } }
@@ -444,21 +484,25 @@ penguins.to_rover
444
484
 
445
485
  ### `drop ` - pick and drop -
446
486
 
447
- Drop some variables (columns) to create a remainer DataFrame.
487
+ Drop some columns (variables) to create a remainer DataFrame.
448
488
 
449
489
  ![drop method image](doc/../image/dataframe/drop.png)
450
490
 
451
491
  - Keys as arguments
452
492
 
453
- `drop(keys)` accepts keys as arguments in an Array.
493
+ `drop(keys)` accepts keys as arguments in an Array or a Range.
494
+
495
+ - Indices as arguments
454
496
 
455
- - Booleans as a argument
497
+ `drop(indices)` accepts indices as a arguments. Indices should be Integers, Floats or Ranges of Integers.
456
498
 
457
- `drop(booleans)` accepts booleans as a argument in an Array. Booleans must be same length as `n_keys`.
499
+ - Booleans as arguments
500
+
501
+ `drop(booleans)` accepts booleans as an argument in an Array. Booleans must be same length as `n_keys`.
458
502
 
459
503
  - Keys or booleans by a block
460
504
 
461
- `drop {block}` is also acceptable. We can't use both arguments and a block at a same time. The block should return keys, or a boolean Array with a same length as `n_keys`. Block is called in the context of self.
505
+ `drop {block}` is also acceptable. We can't use both arguments and a block at a same time. The block should return keys, indices or a boolean Array with a same length as `n_keys`. Block is called in the context of self.
462
506
 
463
507
  - Notice for nil
464
508
 
@@ -493,9 +537,20 @@ penguins.to_rover
493
537
  [1, 2, 3]
494
538
  ```
495
539
 
540
+ A simple key name is usable as a method of the DataFrame if the key name is acceptable as a method name.
541
+ It returns a Vector same as `[]`.
542
+
543
+ ```ruby
544
+ df.a
545
+
546
+ # =>
547
+ #<RedAmber::Vector(:uint8, size=3):0x000000000000f258>
548
+ [1, 2, 3]
549
+ ```
550
+
496
551
  ### `slice ` - to cut vertically is slice -
497
552
 
498
- Slice and select observations (rows) to create a sub DataFrame.
553
+ Slice and select rows (observations) to create a sub DataFrame.
499
554
 
500
555
  ![slice method image](doc/../image/dataframe/slice.png)
501
556
 
@@ -526,7 +581,7 @@ penguins.to_rover
526
581
 
527
582
  - Booleans as an argument
528
583
 
529
- `slice(booleans)` accepts booleans as a argument in an Array, a Vector or an Arrow::BooleanArray . Booleans must be same length as `size`.
584
+ `slice(booleans)` accepts booleans as an argument in an Array, a Vector or an Arrow::BooleanArray . Booleans must be same length as `size`.
530
585
 
531
586
  ```ruby
532
587
  vector = penguins[:bill_length_mm]
@@ -603,7 +658,7 @@ penguins.to_rover
603
658
 
604
659
  ### `remove`
605
660
 
606
- Slice and reject observations (rows) to create a remainer DataFrame.
661
+ Slice and reject rows (observations) to create a remainer DataFrame.
607
662
 
608
663
  ![remove method image](doc/../image/dataframe/remove.png)
609
664
 
@@ -632,7 +687,7 @@ penguins.to_rover
632
687
 
633
688
  - Booleans as an argument
634
689
 
635
- `remove(booleans)` accepts booleans as a argument in an Array, a Vector or an Arrow::BooleanArray . Booleans must be same length as `size`.
690
+ `remove(booleans)` accepts booleans as an argument in an Array, a Vector or an Arrow::BooleanArray . Booleans must be same length as `size`.
636
691
 
637
692
  ```ruby
638
693
  # remove all observation contains nil
@@ -660,10 +715,12 @@ penguins.to_rover
660
715
 
661
716
  ```ruby
662
717
  penguins.remove do
663
- vector = self[:bill_length_mm]
664
- min = vector.mean - vector.std
665
- max = vector.mean + vector.std
666
- vector.to_a.map { |e| (min..max).include? e }
718
+ # We will use another style shown in slice
719
+ # self.bill_length_mm returns Vector
720
+ mean = bill_length_mm.mean
721
+ min = mean - bill_length_mm.std
722
+ max = mean + bill_length_mm.std
723
+ bill_length_mm.to_a.map { |e| (min..max).include? e }
667
724
  end
668
725
 
669
726
  # =>
@@ -680,6 +737,7 @@ penguins.to_rover
680
737
  139 Gentoo Biscoe 50.4 15.7 222 ... 2009
681
738
  140 Gentoo Biscoe 49.9 16.1 213 ... 2009
682
739
  ```
740
+
683
741
  - Notice for nil
684
742
  - When `remove` used with booleans, nil in booleans is treated as false. This behavior is aligned with Ruby's `nil#!`.
685
743
 
@@ -772,15 +830,19 @@ penguins.to_rover
772
830
 
773
831
  # =>
774
832
  #<RedAmber::DataFrame : 3 x 2 Vectors, 0x0000000000062804>
775
- name age
776
- <string> <uint8>
777
- 1 Yasuko 68
778
- 2 Rui 49
833
+ name age
834
+ <string> <uint8>
835
+ 1 Yasuko 68
836
+ 2 Rui 49
779
837
  3 Hinata 28
780
838
 
781
839
  # update :age and add :brother
782
- assigner = { age: [97, 78, 57], brother: ['Santa', nil, 'Momotaro'] }
783
- df.assign(assigner)
840
+ df.assign do
841
+ {
842
+ age: age + 29,
843
+ brother: ['Santa', nil, 'Momotaro']
844
+ }
845
+ end
784
846
 
785
847
  # =>
786
848
  #<RedAmber::DataFrame : 3 x 3 Vectors, 0x00000000000658b0>
@@ -799,7 +861,8 @@ penguins.to_rover
799
861
  df = RedAmber::DataFrame.new(
800
862
  index: [0, 1, 2, 3, nil],
801
863
  float: [0.0, 1.1, 2.2, Float::NAN, nil],
802
- string: ['A', 'B', 'C', 'D', nil])
864
+ string: ['A', 'B', 'C', 'D', nil]
865
+ )
803
866
  df
804
867
 
805
868
  # =>
@@ -821,13 +884,13 @@ penguins.to_rover
821
884
 
822
885
  # =>
823
886
  #<RedAmber::DataFrame : 5 x 3 Vectors, 0x00000000000dfffc>
824
- index float string
825
- <uint8> <double> <string>
826
- 1 0 -0.0 A
827
- 2 1 -1.1 B
828
- 3 2 -2.2 C
829
- 4 3 NaN D
830
- 5 (nil) (nil) (nil)
887
+ index float string
888
+ <uint8> <double> <string>
889
+ 1 0 -0.0 A
890
+ 2 1 -1.1 B
891
+ 3 2 -2.2 C
892
+ 4 3 NaN D
893
+ 5 (nil) (nil) (nil)
831
894
 
832
895
  # Or we can use assigner by a Hash
833
896
  df.assign do
@@ -852,7 +915,7 @@ penguins.to_rover
852
915
  `assign_left` method accepts the same parameters and block as `assign`, but append new columns from leftside.
853
916
 
854
917
  ```ruby
855
- df.assign_left(new_index: [1, 2, 3, 4, 5])
918
+ df.assign_left(new_index: df.indices(1))
856
919
 
857
920
  # =>
858
921
  #<RedAmber::DataFrame : 5 x 4 Vectors, 0x000000000001787c>
@@ -865,6 +928,74 @@ penguins.to_rover
865
928
  5 5 (nil) (nil) (nil)
866
929
  ```
867
930
 
931
+ ### `slice_by(key, keep_key: false) { block }`
932
+
933
+ `slice_by` accepts a key and a block to select rows.
934
+
935
+ (Since 0.2.1)
936
+
937
+ ```ruby
938
+ df = RedAmber::DataFrame.new(
939
+ index: [0, 1, 2, 3, nil],
940
+ float: [0.0, 1.1, 2.2, Float::NAN, nil],
941
+ string: ['A', 'B', 'C', 'D', nil]
942
+ )
943
+ df
944
+
945
+ # =>
946
+ #<RedAmber::DataFrame : 5 x 3 Vectors, 0x0000000000069e60>
947
+ index float string
948
+ <uint8> <double> <string>
949
+ 1 0 0.0 A
950
+ 2 1 1.1 B
951
+ 3 2 2.2 C
952
+ 4 3 NaN D
953
+ 5 (nil) (nil) (nil)
954
+
955
+ df.slice_by(:string) { ["A", "C"] }
956
+
957
+ # =>
958
+ #<RedAmber::DataFrame : 2 x 2 Vectors, 0x000000000001b1ac>
959
+ index float
960
+ <uint8> <double>
961
+ 1 0 0.0
962
+ 2 2 2.2
963
+ ```
964
+
965
+ It is the same behavior as;
966
+
967
+ ```ruby
968
+ df.slice { [string.index("A"), string.index("C")] }.drop(:string)
969
+ ```
970
+
971
+ `slice_by` also accepts a Range.
972
+
973
+ ```ruby
974
+ df.slice_by(:string) { "A".."C" }
975
+
976
+ # =>
977
+ #<RedAmber::DataFrame : 3 x 2 Vectors, 0x0000000000069668>
978
+ index float
979
+ <uint8> <double>
980
+ 1 0 0.0
981
+ 2 1 1.1
982
+ 3 2 2.2
983
+ ```
984
+
985
+ When the option `keep_key: true` used, the column `key` will be preserved.
986
+
987
+ ```ruby
988
+ df.slice_by(:string, keep_key: true) { "A".."C" }
989
+
990
+ # =>
991
+ #<RedAmber::DataFrame : 3 x 3 Vectors, 0x0000000000073c44>
992
+ index float string
993
+ <uint8> <double> <string>
994
+ 1 0 0.0 A
995
+ 2 1 1.1 B
996
+ 3 2 2.2 C
997
+ ```
998
+
868
999
  ## Updating
869
1000
 
870
1001
  ### `sort`
@@ -874,11 +1005,11 @@ penguins.to_rover
874
1005
  - "-key" denotes descending order
875
1006
 
876
1007
  ```ruby
877
- df = RedAmber::DataFrame.new({
1008
+ df = RedAmber::DataFrame.new(
878
1009
  index: [1, 1, 0, nil, 0],
879
1010
  string: ['C', 'B', nil, 'A', 'B'],
880
1011
  bool: [nil, true, false, true, false],
881
- })
1012
+ )
882
1013
  df.sort(:index, '-bool')
883
1014
 
884
1015
  # =>
@@ -1035,7 +1166,7 @@ penguins.to_rover
1035
1166
 
1036
1167
  ### `transpose`
1037
1168
 
1038
- Creates transposed DataFrame for wide type dataframe.
1169
+ Creates transposed DataFrame for the wide (messy) dataframe.
1039
1170
 
1040
1171
  ```ruby
1041
1172
  import_cars = RedAmber::DataFrame.load('test/entity/import_cars.tsv')
@@ -1044,31 +1175,30 @@ penguins.to_rover
1044
1175
  #<RedAmber::DataFrame : 5 x 6 Vectors, 0x000000000000d520>
1045
1176
  Year Audi BMW BMW_MINI Mercedes-Benz VW
1046
1177
  <int64> <int64> <int64> <int64> <int64> <int64>
1047
- 1 2021 22535 35905 18211 51722 35215
1048
- 2 2020 22304 35712 20196 57041 36576
1178
+ 1 2017 28336 52527 25427 68221 49040
1179
+ 2 2018 26473 50982 25984 67554 51961
1049
1180
  3 2019 24222 46814 23813 66553 46794
1050
- 4 2018 26473 50982 25984 67554 51961
1051
- 5 2017 28336 52527 25427 68221 49040
1052
-
1053
- import_cars.transpose
1181
+ 4 2020 22304 35712 20196 57041 36576
1182
+ 5 2021 22535 35905 18211 51722 35215
1183
+ import_cars.transpose(:Manufacturer)
1054
1184
 
1055
1185
  # =>
1056
1186
  #<RedAmber::DataFrame : 5 x 6 Vectors, 0x000000000000ef74>
1057
- name 2021 2020 2019 2018 2017
1058
- <dictionary> <uint16> <uint16> <uint32> <uint32> <uint32>
1059
- 1 Audi 22535 22304 24222 26473 28336
1060
- 2 BMW 35905 35712 46814 50982 52527
1061
- 3 BMW_MINI 18211 20196 23813 25984 25427
1062
- 4 Mercedes-Benz 51722 57041 66553 67554 68221
1063
- 5 VW 35215 36576 46794 51961 49040
1187
+ Manufacturer 2017 2018 2019 2020 2021
1188
+ <dictionary> <uint32> <uint32> <uint32> <uint16> <uint16>
1189
+ 1 Audi 28336 26473 24222 22304 22535
1190
+ 2 BMW 52527 50982 46814 35712 35905
1191
+ 3 BMW_MINI 25427 25984 23813 20196 18211
1192
+ 4 Mercedes-Benz 68221 67554 66553 57041 51722
1193
+ 5 VW 49040 51961 46794 36576 35215
1064
1194
  ```
1065
1195
 
1066
1196
  The leftmost column is created by original keys. Key name of the column is
1067
- named by 'name'.
1197
+ named by parameter `:name`. If `:name` is not specified, `:N` is used for the key.
1068
1198
 
1069
1199
  ### `to_long(*keep_keys)`
1070
1200
 
1071
- Creates a 'long' DataFrame.
1201
+ Creates a 'long' (tidy) DataFrame from a 'wide' DataFrame.
1072
1202
 
1073
1203
  - Parameter `keep_keys` specifies the key names to keep.
1074
1204
 
@@ -1077,21 +1207,21 @@ penguins.to_rover
1077
1207
 
1078
1208
  # =>
1079
1209
  #<RedAmber::DataFrame : 25 x 3 Vectors, 0x0000000000012750>
1080
- Year name value
1210
+ Year N V
1081
1211
  <uint16> <dictionary> <uint32>
1082
- 1 2021 Audi 22535
1083
- 2 2021 BMW 35905
1084
- 3 2021 BMW_MINI 18211
1085
- 4 2021 Mercedes-Benz 51722
1086
- 5 2021 VW 35215
1212
+ 1 2017 Audi 28336
1213
+ 2 2017 BMW 52527
1214
+ 3 2017 BMW_MINI 25427
1215
+ 4 2017 Mercedes-Benz 68221
1216
+ 5 2017 VW 49040
1087
1217
  : : : :
1088
- 23 2017 BMW_MINI 25427
1089
- 24 2017 Mercedes-Benz 68221
1090
- 25 2017 VW 49040
1218
+ 23 2021 BMW_MINI 18211
1219
+ 24 2021 Mercedes-Benz 51722
1220
+ 25 2021 VW 35215
1091
1221
  ```
1092
1222
 
1093
- - Option `:name` : key of the column which is come **from key names**.
1094
- - Option `:value` : key of the column which is come **from values**.
1223
+ - Option `:name` is the key of the column which came **from key names**.
1224
+ - Option `:value` is the key of the column which came **from values**.
1095
1225
 
1096
1226
  ```ruby
1097
1227
  import_cars.to_long(:Year, name: :Manufacturer, value: :Num_of_imported)
@@ -1100,38 +1230,40 @@ penguins.to_rover
1100
1230
  #<RedAmber::DataFrame : 25 x 3 Vectors, 0x0000000000017700>
1101
1231
  Year Manufacturer Num_of_imported
1102
1232
  <uint16> <dictionary> <uint32>
1103
- 1 2021 Audi 22535
1104
- 2 2021 BMW 35905
1105
- 3 2021 BMW_MINI 18211
1106
- 4 2021 Mercedes-Benz 51722
1107
- 5 2021 VW 35215
1233
+ 1 2017 Audi 28336
1234
+ 2 2017 BMW 52527
1235
+ 3 2017 BMW_MINI 25427
1236
+ 4 2017 Mercedes-Benz 68221
1237
+ 5 2017 VW 49040
1108
1238
  : : : :
1109
- 23 2017 BMW_MINI 25427
1110
- 24 2017 Mercedes-Benz 68221
1111
- 25 2017 VW 49040
1239
+ 23 2021 BMW_MINI 18211
1240
+ 24 2021 Mercedes-Benz 51722
1241
+ 25 2021 VW 35215
1112
1242
  ```
1113
1243
 
1114
1244
  ### `to_wide`
1115
1245
 
1116
- Creates a 'wide' DataFrame.
1246
+ Creates a 'wide' (messy) DataFrame from a 'long' DataFrame.
1117
1247
 
1118
- - Option `:name` : key of the column which will be expanded **to key name**.
1119
- - Option `:value` : key of the column which will be expanded **to values**.
1248
+ - Option `:name` is the key of the column which will be expanded **to key names**.
1249
+ - Option `:value` is the key of the column which will be expanded **to values**.
1120
1250
 
1121
1251
  ```ruby
1122
1252
  import_cars.to_long(:Year).to_wide
1123
- # import_cars.to_long(:Year).to_wide(name: :name, value: :value)
1253
+ # import_cars.to_long(:Year).to_wide(name: :N, value: :V)
1124
1254
  # is also OK
1125
1255
 
1126
1256
  # =>
1127
1257
  #<RedAmber::DataFrame : 5 x 6 Vectors, 0x000000000000f0f0>
1128
1258
  Year Audi BMW BMW_MINI Mercedes-Benz VW
1129
1259
  <uint16> <uint16> <uint16> <uint16> <uint32> <uint16>
1130
- 1 2021 22535 35905 18211 51722 35215
1131
- 2 2020 22304 35712 20196 57041 36576
1260
+ 1 2017 28336 52527 25427 68221 49040
1261
+ 2 2018 26473 50982 25984 67554 51961
1132
1262
  3 2019 24222 46814 23813 66553 46794
1133
- 4 2018 26473 50982 25984 67554 51961
1134
- 5 2017 28336 52527 25427 68221 49040
1263
+ 4 2020 22304 35712 20196 57041 36576
1264
+ 5 2021 22535 35905 18211 51722 35215
1265
+
1266
+ # == import_cars
1135
1267
  ```
1136
1268
 
1137
1269
  ## Combine
data/doc/Vector.md CHANGED
@@ -187,8 +187,8 @@ boolean.all(skip_nulls: false) #=> false
187
187
  | ✓ `-@` | | ✓ | | |as `-vector`|
188
188
  | ✓ `negate` | | ✓ | | |`-@` |
189
189
  | ✓ `abs` | | ✓ | | | |
190
- |[ ]`acos` | | [ ] | | | |
191
- |[ ]`asin` | | [ ] | | | |
190
+ | `acos` | || | | |
191
+ | `asin` | || | | |
192
192
  | ✓ `atan` | | ✓ | | | |
193
193
  | ✓ `bit_wise_not`| | (✓) | | |integer only|
194
194
  | ✓ `ceil` | | ✓ | | | |
@@ -197,10 +197,10 @@ boolean.all(skip_nulls: false) #=> false
197
197
  | ✓`fill_nil_forward` | ✓ | ✓ | ✓ | | |
198
198
  | ✓ `floor` | | ✓ | | | |
199
199
  | ✓ `invert` | ✓ | | | |`!`, alias `not`|
200
- |[ ]`ln` | | [ ] | | | |
201
- |[ ]`log10` | | [ ] | | | |
202
- |[ ]`log1p` | | [ ] | | | |
203
- |[ ]`log2` | | [ ] | | | |
200
+ | `ln` | || | | |
201
+ | `log10` | || | | |
202
+ | `log1p` | || | |Compute natural log of (1+x)|
203
+ | `log2` | || | | |
204
204
  | ✓ `round` | | ✓ | | ✓ Round (:mode, :n_digits)| |
205
205
  | ✓ `round_to_multiple`| | ✓ | | ✓ RoundToMultiple :mode, :multiple| multiple must be an Arrow::Scalar|
206
206
  | ✓ `sign` | | ✓ | | | |
@@ -267,7 +267,7 @@ double.round(n_digits: -1)
267
267
  | ✓ `is_valid` | ✓ | ✓ | ✓ | | |
268
268
  | ✓ `less` | ✓ | ✓ | ✓ | |`<`, alias `lt`|
269
269
  | ✓ `less_equal` | ✓ | ✓ | ✓ | |`<=`, alias `le`|
270
- |[ ]`logb` | | [ ] | | | |
270
+ | `logb` | || | |logb(b) Compute base `b` logarithm|
271
271
  |[ ]`mod` | | [ ] | | | `%` |
272
272
  | ✓ `multiply` | | ✓ | | | `*` |
273
273
  | ✓ `not_equal` | ✓ | ✓ | ✓ | |`!=`, alias `ne`|
@@ -283,8 +283,6 @@ double.round(n_digits: -1)
283
283
 
284
284
  Returns a new array with distinct elements.
285
285
 
286
- (Not impremented functions)
287
-
288
286
  ### `tally` and `value_counts`
289
287
 
290
288
  Compute counts of unique elements and return a Hash.
@@ -309,15 +307,6 @@ double.round(n_digits: -1)
309
307
 
310
308
  ### `sort_indexes`, `sort_indices`, `array_sort_indices`
311
309
 
312
- ### [ ] `sort`, `sort_by`
313
- ### [ ] argmin, argmax
314
- ### [ ] (array functions)
315
- ### [ ] (strings functions)
316
- ### [ ] (temporal functions)
317
- ### [ ] (conditional functions)
318
- ### [ ] (index functions)
319
- ### [ ] (other functions)
320
-
321
310
  ## Coerce
322
311
 
323
312
  ```ruby