@@ -40,7 +40,7 @@ Sample(size::Int, weights::AbstractWeights; replace=false, ordered=false, rng=Ra
40
40
41
41
Sample (size:: Int , weights; kwargs... ) = Sample (size, Weights (collect (weights)); kwargs... )
42
42
43
- isrevertible (:: Type{<:Sample} ) = true
43
+ isrevertible (:: Type{<:Sample} ) = false
44
44
45
45
function preprocess (transform:: Sample , feat)
46
46
# retrieve valid indices
@@ -59,46 +59,16 @@ function preprocess(transform::Sample, feat)
59
59
sample (rng, inds, weights, size; replace, ordered)
60
60
end
61
61
62
- # rejected indices
63
- rinds = setdiff (inds, sinds)
64
-
65
- sinds, rinds
62
+ sinds
66
63
end
67
64
68
65
function applyfeat (:: Sample , feat, prep)
69
66
# preprocessed indices
70
- sinds, rinds = prep
67
+ sinds = prep
71
68
72
- # selected/rejected rows
69
+ # selected rows
73
70
srows = Tables. subset (feat, sinds, viewhint= true )
74
- rrows = Tables. subset (feat, rinds, viewhint= true )
75
71
76
72
newfeat = srows |> Tables. materializer (feat)
77
- newfeat, (sinds, rinds, rrows)
78
- end
79
-
80
- function revertfeat (:: Sample , newfeat, fcache)
81
- cols = Tables. columns (newfeat)
82
- names = Tables. columnnames (cols)
83
-
84
- sinds, rinds, rrows = fcache
85
-
86
- # columns with selected rows in original order
87
- uinds = indexin (sort (unique (sinds)), sinds)
88
- columns = map (names) do name
89
- y = Tables. getcolumn (cols, name)
90
- [y[i] for i in uinds]
91
- end
92
-
93
- # insert rejected rows into columns
94
- rrcols = Tables. columns (rrows)
95
- for (name, x) in zip (names, columns)
96
- r = Tables. getcolumn (rrcols, name)
97
- for (i, v) in zip (rinds, r)
98
- insert! (x, i, v)
99
- end
100
- end
101
-
102
- 𝒯 = (; zip (names, columns)... )
103
- 𝒯 |> Tables. materializer (newfeat)
73
+ newfeat, nothing
104
74
end
0 commit comments