Skip to content
/ portion Public

❗ This is a read-only mirror of the CRAN R package repository. portion — Extracting a Data Portion. Homepage: https://github.com/loelschlaeger/portion Report bugs for this package: https://github.com/loelschlaeger/portion/issues

Notifications You must be signed in to change notification settings

cran/portion

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Extracting a Data Portion

R-CMD-check CRAN status CRAN downloads Codecov test coverage

The {portion} R package offers convenient tools to extract data portions from various objects:

  1. works for vector, matrix, data.frame, and list objects

  2. the relative portion size can be selected

  3. allows to extract first, last, random, similar or dissimilar data

  4. can portion row- and column-wise

  5. provides selected indices as an attribute

  6. preserves object attributes

Installation

You can install the released version from CRAN with:

install.packages("portion")

Example

Can portion a vector:

x <- c(1, 1, 2, 2)
portion(x, proportion = 0.5, how = "similar")
#> [1] 1 1
#> attr(,"indices")
#> [1] 1 2
portion(x, proportion = 0.5, how = "dissimilar")
#> [1] 1 2
#> attr(,"indices")
#> [1] 1 3

Can portion a matrix:

x <- matrix(LETTERS[1:24], nrow = 4)
portion(x, proportion = 0.5, how = "first")
#>      [,1] [,2] [,3] [,4] [,5] [,6]
#> [1,] "A"  "E"  "I"  "M"  "Q"  "U" 
#> [2,] "B"  "F"  "J"  "N"  "R"  "V" 
#> attr(,"indices")
#> [1] 1 2
portion(x, proportion = 0.5, how = "first", byrow = FALSE)
#>      [,1] [,2] [,3]
#> [1,] "A"  "E"  "I" 
#> [2,] "B"  "F"  "J" 
#> [3,] "C"  "G"  "K" 
#> [4,] "D"  "H"  "L" 
#> attr(,"indices")
#> [1] 1 2 3

Can portion a data.frame:

x <- as.data.frame(diag(8))
portion(x, proportion = 0.3, how = "random")
#>   V1 V2 V3 V4 V5 V6 V7 V8
#> 1  1  0  0  0  0  0  0  0
#> 3  0  0  1  0  0  0  0  0
#> 7  0  0  0  0  0  0  1  0
portion(x, proportion = 0.3, how = "random", byrow = FALSE)
#>   V1 V2 V5
#> 1  1  0  0
#> 2  0  1  0
#> 3  0  0  0
#> 4  0  0  0
#> 5  0  0  1
#> 6  0  0  0
#> 7  0  0  0
#> 8  0  0  0

Can work on a list:

x <- list(1:5, diag(3), data.frame(1:3, 2:4))
portion(x, proportion = 0.5, how = "last")
#> [[1]]
#> [1] 3 4 5
#> attr(,"indices")
#> [1] 3 4 5
#> 
#> [[2]]
#>      [,1] [,2] [,3]
#> [1,]    0    1    0
#> [2,]    0    0    1
#> attr(,"indices")
#> [1] 2 3
#> 
#> [[3]]
#>   X1.3 X2.4
#> 2    2    3
#> 3    3    4

About

❗ This is a read-only mirror of the CRAN R package repository. portion — Extracting a Data Portion. Homepage: https://github.com/loelschlaeger/portion Report bugs for this package: https://github.com/loelschlaeger/portion/issues

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages