# sample {base}

### Description

`sample`

takes a sample of the specified size from the elements of `x`

using either with or without replacement.

### Usage

sample(x, size, replace = FALSE, prob = NULL) sample.int(n, size = n, replace = FALSE, prob = NULL)

### Arguments

- x
- Either a vector of one or more elements from which to choose, or a positive integer. See ‘Details.’
- n
- a positive number, the number of items to choose from. See ‘Details.’
- size
- a non-negative integer giving 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.

### Details

If `x`

has length 1, is numeric (in the sense of `is.numeric`

) and `x >= 1`

, sampling *via* `sample`

takes place from `1:x`

. *Note* that this convenience feature may lead to undesired behaviour when `x`

is of varying length in calls such as `sample(x)`

. See the examples.

Otherwise `x`

can be any R object for which `length`

and subsetting by integers make sense: S3 or S4 methods for these operations will be dispatched as appropriate.

For `sample`

the default for `size`

is the number of items inferred from the first argument, so that `sample(x)`

generates a random permutation of the elements of `x`

(or `1:x`

).

It is allowed to ask for `size = 0`

samples with `n = 0`

or a length-zero `x`

, but otherwise `n > 0`

or positive `length(x)`

is required.

Non-integer positive numerical values of `n`

or `x`

will be truncated to the next smallest integer, which has to be no larger than `.Machine$integer.max`

.

The optional `prob`

argument can be used to give a vector of weights for obtaining the elements of the vector being sampled. They need not sum to one, but they should be non-negative and not all zero. If `replace`

is true, Walker's alias method (Ripley, 1987) is used when there are more than 250 reasonably probable values: this gives results incompatible with those from R < 2.2.0, and there will be a warning the first time this happens in a session.

If `replace`

is false, these probabilities are applied sequentially, that is the probability of choosing the next item is proportional to the weights amongst the remaining items. The number of nonzero weights must be at least `size`

in this case.

`sample.int`

is a bare interface in which both `n`

and `size`

must be supplied as integers.

As from R 3.0.0, `n`

can be larger than the largest integer of type `integer`

, up to the largest representable integer in type `double`

. Only uniform sampling is supported. Two random numbers are used to ensure uniform sampling of large integers.

### Values

For `sample`

a vector of length `size`

with elements drawn from either `x`

or from the integers `1:x`

.

For `sample.int`

, an integer vector of length `size`

with elements from `1:n`

, or a double vector if n >= 2^31.

### References

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) *The New S Language*. Wadsworth & Brooks/Cole.

Ripley, B. D. (1987) *Stochastic Simulation*. Wiley.

### See Also

`RNG`

about random number generation.

CRAN package sampling for other methods of weighted sampling without replacement.

### Examples

x <- 1:12 # a random permutation sample(x) # bootstrap resampling -- only if length(x) > 1 ! sample(x, replace = TRUE) # 100 Bernoulli trials sample(c(0,1), 100, replace = TRUE) ## More careful bootstrapping -- Consider this when using sample() ## programmatically (i.e., in your function or simulation)! # sample()'s surprise -- example x <- 1:10 sample(x[x > 8]) # length 2 sample(x[x > 9]) # oops -- length 10! sample(x[x > 10]) # length 0 resample <- function(x, ...) x[sample.int(length(x), ...)] resample(x[x > 8]) # length 2 resample(x[x > 9]) # length 1 resample(x[x > 10]) # length 0 ## R 3.x.y only sample.int(1e10, 12, replace = TRUE) sample.int(1e10, 12) # not that there is much chance of duplicates

Documentation reproduced from R 3.0.2. License: GPL-2.

## Comments

very nice article

UK DVD BOX SET

/* Style Definitions */

table.MsoNormalTable

{mso-style-name:"Table Normal";

mso-tstyle-rowband-size:0;

mso-tstyle-colband-size:0;

mso-style-noshow:yes;

mso-style-parent:"";

mso-padding-alt:0in 5.4pt 0in 5.4pt;

mso-para-margin:0in;

mso-para-margin-bottom:.0001pt;

mso-pagination:widow-orphan;

font-size:10.0pt;

font-family:"Times New Roman";

mso-ansi-language:#0400;

mso-fareast-language:#0400;

mso-bidi-language:#0400;}

I’ve seen progression in every post. Your newer posts are simply wonderful compared to your posts in the past. Keep up the good work.

<a href="http://www.bimago.se/vaggdekor.html">väggdekor</a>

Dealing on-line via binary options can be hassle-free yet widely accessible for everyone. Binary options agents will let you invest very small amount of capital in the financial markets. Two way options are generally fine financial investment solutions. Any person can win excellent profits fast. Binary options tend to be quite popular amongst younger traders. Trading in the currency markets utilizing options is really rewarding. trading binary options

I agree, Simple, but great and incrediblsae. Information add insight. I love to read your article because of the many benefits that I can.

options binaires

hey, you have a very succsessfull article beacuse we are waituing since morning to you beacause i am a very big fan of your article .......iidsf always want to you just send me this type of articles thanks...

kitchens