R: A wrapper for 'sample.int' and 'extract' that makes it easy...

sample2 {grr} | R Documentation

## A wrapper for `sample.int` and `extract` that makes it easy to quickly sample rows from any object, including Matrix and sparse matrix objects.

### Description

Row names are not preserved.

### Usage

    sample2(x, size, replace = FALSE, prob = NULL)

### Arguments

`x` | object from which to extract elements
`size` | a positive number, the number of items to choose.
`replace` | Should sampling be with replacement?
`prob` | A vector of probability weights for obtaining the elements of the vector being sampled.

### Examples

    #Sampling from a list
    l1<-as.list(1:1e6)
    b<-sample2(l1,1e5)

    #Sampling from a data frame
    orders<-data.frame(orderNum=sample(1e5, 1e6, TRUE),
       sku=sample(1e3, 1e6, TRUE),
       customer=sample(1e4,1e6,TRUE),stringsAsFactors=FALSE)

    a<-sample2(orders,250000)

    #With oversampling sample2 can be much faster than the alternatives,
    #with the caveat that it does not preserve row names.
    system.time(a<-sample2(orders,2000000,TRUE))
    system.time(b<-orders[sample.int(nrow(orders),2000000,TRUE),])
    ## Not run:

    system.time(c<-dplyr::sample_n(orders,2000000,replace=TRUE))

    #Can quickly sample for sparse matrices while preserving sparsity
    sm<-rsparsematrix(20000000,10000,density=.0001)
    sm2<-sample2(sm,1000000)

    ## End(Not run)

[Package grr version 0.9.5 Index]