| Type: | Package | 
| Title: | Extracting a Data Portion | 
| Version: | 0.1.2 | 
| Description: | Provides simple methods to extract data portions from various objects. The relative portion size and the way the portion is selected can be chosen. | 
| License: | GPL (≥ 3) | 
| Encoding: | UTF-8 | 
| RoxygenNote: | 7.3.2 | 
| Suggests: | testthat (≥ 3.0.0) | 
| Config/testthat/edition: | 3 | 
| Imports: | stats | 
| URL: | https://github.com/loelschlaeger/portion | 
| BugReports: | https://github.com/loelschlaeger/portion/issues | 
| NeedsCompilation: | no | 
| Packaged: | 2025-06-10 16:29:13 UTC; Lennart Oelschläger | 
| Author: | Lennart Oelschläger [aut, cre] | 
| Maintainer: | Lennart Oelschläger <oelschlaeger.lennart@gmail.com> | 
| Repository: | CRAN | 
| Date/Publication: | 2025-06-10 16:40:02 UTC | 
portion: Extracting a Data Portion
Description
 
Provides simple methods to extract data portions from various objects. The relative portion size and the way the portion is selected can be chosen.
Author(s)
Maintainer: Lennart Oelschläger oelschlaeger.lennart@gmail.com
See Also
Useful links:
- Report bugs at https://github.com/loelschlaeger/portion/issues 
Extracting a data portion
Description
Methods to extract portions of different objects.
Usage
portion(x, proportion, how = "random", centers = 2L, ...)
## Default S3 method:
portion(x, ...)
## S3 method for class 'numeric'
portion(x, proportion, how = "random", centers = 2L, ...)
## S3 method for class 'character'
portion(x, proportion, how = "random", ...)
## S3 method for class 'logical'
portion(x, proportion, how = "random", centers = 2L, ...)
## S3 method for class 'matrix'
portion(
  x,
  proportion,
  how = "random",
  centers = 2L,
  byrow = TRUE,
  ignore = integer(),
  ...
)
## S3 method for class 'data.frame'
portion(
  x,
  proportion,
  how = "random",
  centers = 2L,
  byrow = TRUE,
  ignore = integer(),
  ...
)
## S3 method for class 'list'
portion(x, proportion, how = "random", centers = 2L, ...)
Arguments
| x | An object to be portioned. | 
| proportion | [ | 
| how | [ 
 Options  | 
| centers | [ In this case, passed on to  | 
| ... | Further arguments to be passed to or from other methods. | 
| byrow | [ In this case, set to  | 
| ignore | [ In this case, row indices (or column indices if  | 
Value
The portioned input x with selected (row, column) indices as attributes
"indices".
Examples
# can portion vectors, matrices, data.frames, and lists of such types
portion(
  list(
    1:10,
    matrix(LETTERS[1:12], nrow = 3, ncol = 4),
    data.frame(a = 1:6, b = -6:-1)
  ),
  proportion = 0.5,
  how = "first"
)
# can portion similar and dissimilar elements (based on kmeans clustering)
x <- c(1, 1, 2, 2)
portion(x, proportion = 0.5, how = "similar")
portion(x, proportion = 0.5, how = "dissimilar")
# object attributes are preserved
x <- structure(1:10, "test_attribute" = "test")
x[1:5]
portion(x, proportion = 0.5, how = "first")