@@ -26,36 +26,57 @@ import kotlin.reflect.KProperty
26
26
public fun <T , C > DataFrame<T>.getColumnsWithPaths (selector : ColumnsSelector <T , C >): List <ColumnWithPath <C >> =
27
27
getColumnsWithPaths(UnresolvedColumnsPolicy .Fail , selector)
28
28
29
- public fun <T , C > DataFrame<T>.getColumnPath (selector : ColumnSelector <T , C >): ColumnPath = getColumnPaths(selector).single()
29
+ public fun <T , C > DataFrame<T>.getColumnPath (selector : ColumnSelector <T , C >): ColumnPath =
30
+ getColumnPaths(selector).single()
31
+
30
32
public fun <T , C > DataFrame<T>.getColumnPaths (selector : ColumnsSelector <T , C >): List <ColumnPath > =
31
33
getColumnPaths(UnresolvedColumnsPolicy .Fail , selector)
32
34
33
- public fun <T , C > DataFrame<T>.getColumnWithPath (selector : ColumnSelector <T , C >): ColumnWithPath <C > = getColumnsWithPaths(selector).single()
35
+ public fun <T , C > DataFrame<T>.getColumnWithPath (selector : ColumnSelector <T , C >): ColumnWithPath <C > =
36
+ getColumnsWithPaths(selector).single()
37
+
34
38
public fun <T , C > DataFrame<T>.getColumns (selector : ColumnsSelector <T , C >): List <DataColumn <C >> = get(selector)
39
+
35
40
public fun <T > DataFrame<T>.getColumns (vararg columns : String ): List <AnyCol > = getColumns { columns.toColumnSet() }
36
41
37
42
public fun <T > DataFrame<T>.getColumnIndex (col : AnyCol ): Int = getColumnIndex(col.name())
38
- public fun <T > DataFrame<T>.getRows (range : IntRange ): DataFrame <T > = if (range == indices()) this else columns().map { col -> col[range] }.toDataFrame().cast()
39
- public fun <T > DataFrame<T>.getRows (indices : Iterable <Int >): DataFrame <T > = columns().map { col -> col[indices] }.toDataFrame().cast()
43
+
44
+ public fun <T > DataFrame<T>.getRows (range : IntRange ): DataFrame <T > =
45
+ if (range == indices()) this else columns().map { col -> col[range] }.toDataFrame().cast()
46
+
47
+ public fun <T > DataFrame<T>.getRows (indices : Iterable <Int >): DataFrame <T > =
48
+ columns().map { col -> col[indices] }.toDataFrame().cast()
49
+
40
50
public fun <T > DataFrame<T>.getOrNull (index : Int ): DataRow <T >? = if (index < 0 || index >= nrow) null else get(index)
41
51
42
- public fun <T > ColumnsContainer<T>.getFrameColumn (columnPath : ColumnPath ): FrameColumn <* > = get(columnPath).asAnyFrameColumn()
43
- public fun <T > ColumnsContainer<T>.getFrameColumn (columnName : String ): FrameColumn <* > = get(columnName).asAnyFrameColumn()
44
- public fun <T > ColumnsContainer<T>.getColumnGroup (columnPath : ColumnPath ): ColumnGroup <* > = get(columnPath).asColumnGroup()
52
+ public fun <T > ColumnsContainer<T>.getFrameColumn (columnPath : ColumnPath ): FrameColumn <* > =
53
+ get(columnPath).asAnyFrameColumn()
54
+
55
+ public fun <T > ColumnsContainer<T>.getFrameColumn (columnName : String ): FrameColumn <* > =
56
+ get(columnName).asAnyFrameColumn()
57
+
58
+ public fun <T > ColumnsContainer<T>.getColumnGroup (columnPath : ColumnPath ): ColumnGroup <* > =
59
+ get(columnPath).asColumnGroup()
45
60
46
61
// region getColumn
47
62
48
- public fun <T > ColumnsContainer<T>.getColumn (name : String ): AnyCol = getColumnOrNull(name) ? : throw IllegalArgumentException (" Column not found: '$name '" )
63
+ public fun <T > ColumnsContainer<T>.getColumn (name : String ): AnyCol =
64
+ getColumnOrNull(name) ? : throw IllegalArgumentException (" Column not found: '$name '" )
49
65
50
- public fun <T , R > ColumnsContainer<T>.getColumn (column : ColumnReference <DataFrame <R >>): FrameColumn <R > = getColumnOrNull(column)?.asFrameColumn() ? : throw IllegalArgumentException (" FrameColumn not found: '$column '" )
66
+ public fun <T , R > ColumnsContainer<T>.getColumn (column : ColumnReference <DataFrame <R >>): FrameColumn <R > =
67
+ getColumnOrNull(column)?.asFrameColumn() ? : throw IllegalArgumentException (" FrameColumn not found: '$column '" )
51
68
52
- public fun <T , R > ColumnsContainer<T>.getColumn (column : ColumnReference <DataRow <R >>): ColumnGroup <R > = getColumnOrNull(column)?.asColumnGroup() ? : throw IllegalArgumentException (" ColumnGroup not found: '$column '" )
69
+ public fun <T , R > ColumnsContainer<T>.getColumn (column : ColumnReference <DataRow <R >>): ColumnGroup <R > =
70
+ getColumnOrNull(column)?.asColumnGroup() ? : throw IllegalArgumentException (" ColumnGroup not found: '$column '" )
53
71
54
- public fun <T , R > ColumnsContainer<T>.getColumn (column : ColumnReference <R >): DataColumn <R > = getColumnOrNull(column) ? : throw IllegalArgumentException (" Column not found: '$column '" )
72
+ public fun <T , R > ColumnsContainer<T>.getColumn (column : ColumnReference <R >): DataColumn <R > =
73
+ getColumnOrNull(column) ? : throw IllegalArgumentException (" Column not found: '$column '" )
55
74
56
- public fun <T > ColumnsContainer<T>.getColumn (path : ColumnPath ): AnyCol = getColumnOrNull(path) ? : throw IllegalArgumentException (" Column not found: '$path '" )
75
+ public fun <T > ColumnsContainer<T>.getColumn (path : ColumnPath ): AnyCol =
76
+ getColumnOrNull(path) ? : throw IllegalArgumentException (" Column not found: '$path '" )
57
77
58
- public fun <T > ColumnsContainer<T>.getColumn (index : Int ): AnyCol = getColumnOrNull(index) ? : throw IllegalArgumentException (" Column index is out of bounds: $index . Columns count = $ncol " )
78
+ public fun <T > ColumnsContainer<T>.getColumn (index : Int ): AnyCol = getColumnOrNull(index)
79
+ ? : throw IllegalArgumentException (" Column index is out of bounds: $index . Columns count = $ncol " )
59
80
60
81
public fun <T , C > ColumnsContainer<T>.getColumn (selector : ColumnSelector <T , C >): DataColumn <C > = get(selector)
61
82
@@ -67,35 +88,41 @@ public fun <T> ColumnsContainer<T>.getColumnGroup(index: Int): ColumnGroup<*> =
67
88
68
89
public fun <T > ColumnsContainer<T>.getColumnGroup (name : String ): ColumnGroup <* > = getColumn(name).asColumnGroup()
69
90
70
- public fun <T > ColumnsContainer<T>.getColumnGroup (column : KProperty <* >): ColumnGroup <* > = getColumnGroup(column.columnName)
91
+ public fun <T > ColumnsContainer<T>.getColumnGroup (column : KProperty <* >): ColumnGroup <* > =
92
+ getColumnGroup(column.columnName)
71
93
72
- public fun <T , C > ColumnsContainer<T>.getColumnGroup (column : ColumnReference <DataRow <C >>): ColumnGroup <C > = getColumn(column)
94
+ public fun <T , C > ColumnsContainer<T>.getColumnGroup (column : ColumnReference <DataRow <C >>): ColumnGroup <C > =
95
+ getColumn(column)
73
96
74
- public fun <T , C > ColumnsContainer<T>.getColumnGroup (column : ColumnSelector <T , DataRow <C >>): ColumnGroup <C > = get(column).asColumnGroup()
97
+ public fun <T , C > ColumnsContainer<T>.getColumnGroup (column : ColumnSelector <T , DataRow <C >>): ColumnGroup <C > =
98
+ get(column).asColumnGroup()
75
99
76
100
// endregion
77
101
78
102
// region getColumnGroupOrNull
79
103
80
- public fun <T > ColumnsContainer<T>.getColumnGroupOrNull (name : String ): ColumnGroup <* >? = getColumnOrNull(name)?.asColumnGroup()
104
+ public fun <T > ColumnsContainer<T>.getColumnGroupOrNull (name : String ): ColumnGroup <* >? =
105
+ getColumnOrNull(name)?.asColumnGroup()
81
106
82
- public fun <T > ColumnsContainer<T>.getColumnGroupOrNull (column : KProperty <* >): ColumnGroup <* >? = getColumnGroupOrNull(column.columnName)
107
+ public fun <T > ColumnsContainer<T>.getColumnGroupOrNull (column : KProperty <* >): ColumnGroup <* >? =
108
+ getColumnGroupOrNull(column.columnName)
83
109
84
110
// endregion
85
111
86
112
// region containsColumn
87
113
88
114
public fun <C > ColumnsContainer <* >.containsColumn (column : ColumnReference <C >): Boolean = getColumnOrNull(column) != null
115
+
89
116
public fun ColumnsContainer <* >.containsColumn (column : KProperty <* >): Boolean = containsColumn(column.columnName)
90
117
91
118
public operator fun ColumnsContainer <* >.contains (column : AnyColumnReference ): Boolean = containsColumn(column)
119
+
92
120
public operator fun ColumnsContainer <* >.contains (column : KProperty <* >): Boolean = containsColumn(column)
93
121
94
122
// region rows
95
123
96
124
public fun <T > DataFrame<T>.rows (): Iterable <DataRow <T >> = object : Iterable <DataRow <T >> {
97
125
override fun iterator () =
98
-
99
126
object : Iterator <DataRow <T >> {
100
127
var nextRow = 0
101
128
@@ -110,7 +137,6 @@ public fun <T> DataFrame<T>.rows(): Iterable<DataRow<T>> = object : Iterable<Dat
110
137
111
138
public fun <T > DataFrame<T>.rowsReversed (): Iterable <DataRow <T >> = object : Iterable <DataRow <T >> {
112
139
override fun iterator () =
113
-
114
140
object : Iterator <DataRow <T >> {
115
141
var nextRow = nrow - 1
116
142
0 commit comments