Skip to content

Commit 77fc1fe

Browse files
authored
Merge pull request #537 from tidymodels/align-file-names
Align file names
2 parents 4adf7f1 + 4a2a7bc commit 77fc1fe

32 files changed

+602
-606
lines changed

R/fingerprint.R

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#' Obtain a identifier for the resamples
2+
#'
3+
#' This function returns a hash (or NA) for an attribute that is created when
4+
#' the `rset` was initially constructed. This can be used to compare with other
5+
#' resampling objects to see if they are the same.
6+
#' @param x An `rset` or `tune_results` object.
7+
#' @param ... Not currently used.
8+
#' @return A character value or `NA_character_` if the object was created prior
9+
#' to rsample version 0.1.0.
10+
#' @rdname get_fingerprint
11+
#' @aliases .get_fingerprint
12+
#' @examples
13+
#' set.seed(1)
14+
#' .get_fingerprint(vfold_cv(mtcars))
15+
#'
16+
#' set.seed(1)
17+
#' .get_fingerprint(vfold_cv(mtcars))
18+
#'
19+
#' set.seed(2)
20+
#' .get_fingerprint(vfold_cv(mtcars))
21+
#'
22+
#' set.seed(1)
23+
#' .get_fingerprint(vfold_cv(mtcars, repeats = 2))
24+
#' @export
25+
.get_fingerprint <- function(x, ...) {
26+
UseMethod(".get_fingerprint")
27+
}
28+
29+
#' @export
30+
#' @rdname get_fingerprint
31+
.get_fingerprint.default <- function(x, ...) {
32+
cls <- class(x)
33+
cli_abort("No method for objects of class{?es}: {cls}")
34+
}
35+
36+
#' @export
37+
#' @rdname get_fingerprint
38+
.get_fingerprint.rset <- function(x, ...) {
39+
check_dots_empty()
40+
att <- attributes(x)
41+
if (any(names(att) == "fingerprint")) {
42+
res <- att$fingerprint
43+
} else {
44+
res <- NA_character_
45+
}
46+
res
47+
}

R/misc.R

-176
Original file line numberDiff line numberDiff line change
@@ -118,182 +118,6 @@ split_unnamed <- function(x, f) {
118118
unname(out)
119119
}
120120

121-
#' Obtain a identifier for the resamples
122-
#'
123-
#' This function returns a hash (or NA) for an attribute that is created when
124-
#' the `rset` was initially constructed. This can be used to compare with other
125-
#' resampling objects to see if they are the same.
126-
#' @param x An `rset` or `tune_results` object.
127-
#' @param ... Not currently used.
128-
#' @return A character value or `NA_character_` if the object was created prior
129-
#' to rsample version 0.1.0.
130-
#' @rdname get_fingerprint
131-
#' @aliases .get_fingerprint
132-
#' @examples
133-
#' set.seed(1)
134-
#' .get_fingerprint(vfold_cv(mtcars))
135-
#'
136-
#' set.seed(1)
137-
#' .get_fingerprint(vfold_cv(mtcars))
138-
#'
139-
#' set.seed(2)
140-
#' .get_fingerprint(vfold_cv(mtcars))
141-
#'
142-
#' set.seed(1)
143-
#' .get_fingerprint(vfold_cv(mtcars, repeats = 2))
144-
#' @export
145-
.get_fingerprint <- function(x, ...) {
146-
UseMethod(".get_fingerprint")
147-
}
148-
149-
#' @export
150-
#' @rdname get_fingerprint
151-
.get_fingerprint.default <- function(x, ...) {
152-
cls <- class(x)
153-
cli_abort("No method for objects of class{?es}: {cls}")
154-
}
155-
156-
#' @export
157-
#' @rdname get_fingerprint
158-
.get_fingerprint.rset <- function(x, ...) {
159-
check_dots_empty()
160-
att <- attributes(x)
161-
if (any(names(att) == "fingerprint")) {
162-
res <- att$fingerprint
163-
} else {
164-
res <- NA_character_
165-
}
166-
res
167-
}
168-
169-
#' Reverse the analysis and assessment sets
170-
#'
171-
#' This functions "swaps" the analysis and assessment sets of either a single
172-
#' `rsplit` or all `rsplit`s in the `splits` column of an `rset` object.
173-
#'
174-
#' @param x An `rset` or `rsplit` object.
175-
#' @param ... Not currently used.
176-
#'
177-
#' @return An object of the same class as `x`
178-
#'
179-
#' @examples
180-
#' set.seed(123)
181-
#' starting_splits <- vfold_cv(mtcars, v = 3)
182-
#' reverse_splits(starting_splits)
183-
#' reverse_splits(starting_splits$splits[[1]])
184-
#'
185-
#' @rdname reverse_splits
186-
#' @export
187-
reverse_splits <- function(x, ...) {
188-
UseMethod("reverse_splits")
189-
}
190-
191-
#' @rdname reverse_splits
192-
#' @export
193-
reverse_splits.default <- function(x, ...) {
194-
cli_abort(
195-
"{.arg x} must be either an {.cls rsplit} or an {.cls rset} object."
196-
)
197-
}
198-
199-
#' @rdname reverse_splits
200-
#' @export
201-
reverse_splits.permutations <- function(x, ...) {
202-
cli_abort(
203-
"Permutations cannot have their splits reversed."
204-
)
205-
}
206-
207-
#' @rdname reverse_splits
208-
#' @export
209-
reverse_splits.perm_split <- reverse_splits.permutations
210-
211-
#' @rdname reverse_splits
212-
#' @export
213-
reverse_splits.rsplit <- function(x, ...) {
214-
215-
rlang::check_dots_empty()
216-
217-
out_splits <- list(
218-
analysis = as.integer(x, data = "assessment"),
219-
assessment = as.integer(x, data = "analysis")
220-
)
221-
out_splits <- make_splits(out_splits, x$data)
222-
class(out_splits) <- class(x)
223-
out_splits
224-
225-
}
226-
227-
#' @rdname reverse_splits
228-
#' @export
229-
reverse_splits.rset <- function(x, ...) {
230-
231-
rlang::check_dots_empty()
232-
233-
x$splits <- purrr::map(x$splits, reverse_splits)
234-
235-
x
236-
}
237-
238-
#' "Reshuffle" an rset to re-generate a new rset with the same parameters
239-
#'
240-
#' This function re-generates an rset object, using the same arguments used
241-
#' to generate the original.
242-
#'
243-
#' @param rset The `rset` object to be reshuffled
244-
#'
245-
#' @return An rset of the same class as `rset`.
246-
#'
247-
#' @examples
248-
#' set.seed(123)
249-
#' (starting_splits <- group_vfold_cv(mtcars, cyl, v = 3))
250-
#' reshuffle_rset(starting_splits)
251-
#'
252-
#' @export
253-
reshuffle_rset <- function(rset) {
254-
if (!inherits(rset, "rset")) {
255-
cli_abort("{.arg rset} must be an {.cls rset} object.")
256-
}
257-
258-
if (inherits(rset, "manual_rset")) {
259-
cli_abort("{.arg manual_rset} objects cannot be reshuffled.")
260-
}
261-
262-
# non-random classes is defined below
263-
if (any(non_random_classes %in% class(rset))) {
264-
cls <- class(rset)[[1]]
265-
cli::cli_warn(
266-
"{.fun reshuffle_rset} will return an identical {.cls rset} when called on {.cls {cls}} objects."
267-
)
268-
if ("validation_set" %in% class(rset)) {
269-
return(rset)
270-
}
271-
}
272-
273-
rset_type <- class(rset)[[1]]
274-
split_arguments <- .get_split_args(rset)
275-
if (identical(split_arguments$strata, TRUE)) {
276-
cli_abort(c(
277-
"Cannot reshuffle this rset ({.code attr(rset, 'strata')} is {.val TRUE}, not a column identifier)",
278-
i = "If the original object was created with an older version of rsample, try recreating it with the newest version of the package."
279-
))
280-
}
281-
282-
do.call(
283-
rset_type,
284-
c(list(data = rset$splits[[1]]$data), split_arguments)
285-
)
286-
}
287-
288-
non_random_classes <- c(
289-
"sliding_index",
290-
"sliding_period",
291-
"sliding_window",
292-
"rolling_origin",
293-
"validation_time_split",
294-
"validation_set"
295-
)
296-
297121
#' Get the split arguments from an rset
298122
#' @param x An `rset` or `initial_split` object.
299123
#' @param allow_strata_false A logical to specify which value to use if no

R/nest.R R/nested_cv.R

File renamed without changes.

R/reshuffle_rset.R

+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
#' "Reshuffle" an rset to re-generate a new rset with the same parameters
2+
#'
3+
#' This function re-generates an rset object, using the same arguments used
4+
#' to generate the original.
5+
#'
6+
#' @param rset The `rset` object to be reshuffled
7+
#'
8+
#' @return An rset of the same class as `rset`.
9+
#'
10+
#' @examples
11+
#' set.seed(123)
12+
#' (starting_splits <- group_vfold_cv(mtcars, cyl, v = 3))
13+
#' reshuffle_rset(starting_splits)
14+
#'
15+
#' @export
16+
reshuffle_rset <- function(rset) {
17+
if (!inherits(rset, "rset")) {
18+
cli_abort("{.arg rset} must be an {.cls rset} object.")
19+
}
20+
21+
if (inherits(rset, "manual_rset")) {
22+
cli_abort("{.arg manual_rset} objects cannot be reshuffled.")
23+
}
24+
25+
# non-random classes is defined below
26+
if (any(non_random_classes %in% class(rset))) {
27+
cls <- class(rset)[[1]]
28+
cli::cli_warn(
29+
"{.fun reshuffle_rset} will return an identical {.cls rset} when called on {.cls {cls}} objects."
30+
)
31+
if ("validation_set" %in% class(rset)) {
32+
return(rset)
33+
}
34+
}
35+
36+
rset_type <- class(rset)[[1]]
37+
split_arguments <- .get_split_args(rset)
38+
if (identical(split_arguments$strata, TRUE)) {
39+
cli_abort(c(
40+
"Cannot reshuffle this rset ({.code attr(rset, 'strata')} is {.val TRUE}, not a column identifier)",
41+
i = "If the original object was created with an older version of rsample, try recreating it with the newest version of the package."
42+
))
43+
}
44+
45+
do.call(
46+
rset_type,
47+
c(list(data = rset$splits[[1]]$data), split_arguments)
48+
)
49+
}
50+
51+
non_random_classes <- c(
52+
"sliding_index",
53+
"sliding_period",
54+
"sliding_window",
55+
"rolling_origin",
56+
"validation_time_split",
57+
"validation_set"
58+
)

R/reverse_splits.R

+68
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
#' Reverse the analysis and assessment sets
2+
#'
3+
#' This functions "swaps" the analysis and assessment sets of either a single
4+
#' `rsplit` or all `rsplit`s in the `splits` column of an `rset` object.
5+
#'
6+
#' @param x An `rset` or `rsplit` object.
7+
#' @param ... Not currently used.
8+
#'
9+
#' @return An object of the same class as `x`
10+
#'
11+
#' @examples
12+
#' set.seed(123)
13+
#' starting_splits <- vfold_cv(mtcars, v = 3)
14+
#' reverse_splits(starting_splits)
15+
#' reverse_splits(starting_splits$splits[[1]])
16+
#'
17+
#' @rdname reverse_splits
18+
#' @export
19+
reverse_splits <- function(x, ...) {
20+
UseMethod("reverse_splits")
21+
}
22+
23+
#' @rdname reverse_splits
24+
#' @export
25+
reverse_splits.default <- function(x, ...) {
26+
cli_abort(
27+
"{.arg x} must be either an {.cls rsplit} or an {.cls rset} object."
28+
)
29+
}
30+
31+
#' @rdname reverse_splits
32+
#' @export
33+
reverse_splits.permutations <- function(x, ...) {
34+
cli_abort(
35+
"Permutations cannot have their splits reversed."
36+
)
37+
}
38+
39+
#' @rdname reverse_splits
40+
#' @export
41+
reverse_splits.perm_split <- reverse_splits.permutations
42+
43+
#' @rdname reverse_splits
44+
#' @export
45+
reverse_splits.rsplit <- function(x, ...) {
46+
47+
rlang::check_dots_empty()
48+
49+
out_splits <- list(
50+
analysis = as.integer(x, data = "assessment"),
51+
assessment = as.integer(x, data = "analysis")
52+
)
53+
out_splits <- make_splits(out_splits, x$data)
54+
class(out_splits) <- class(x)
55+
out_splits
56+
57+
}
58+
59+
#' @rdname reverse_splits
60+
#' @export
61+
reverse_splits.rset <- function(x, ...) {
62+
63+
rlang::check_dots_empty()
64+
65+
x$splits <- purrr::map(x$splits, reverse_splits)
66+
67+
x
68+
}

man/get_fingerprint.Rd

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

man/nested_cv.Rd

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

man/reshuffle_rset.Rd

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

man/reverse_splits.Rd

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)