¿Cómo seleccionar muestras aleatorias en R? (con ejemplos)

Actualizado por ultima vez el 24 de noviembre de 2022, por Dereck Amesquita.

Para seleccionar una muestra aleatoria en R podemos usar la función sample () , que usa la siguiente sintaxis:

Función de R para obtener muestras aleatorias

Para obtener una muestra se utiliza la siguiente función:

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

Dónde:

  • x: un vector de elementos entre los que elegir.
  • size: tamaño de la muestra.
  • replace: ya sea ​​para muestrear con reemplazo o no. El valor predeterminado es FALSO.
  • prob: Vector de ponderaciones de probabilidad para obtener elementos del vector. El valor predeterminado es NULL.

Este tutorial explica cómo usar esta función para seleccionar una muestra aleatoria en R tanto de un vector como de un marco de datos.

Obtener muestra aleatoria de un vector

El siguiente código muestra cómo seleccionar una muestra aleatoria de un vector sin reemplazo :

# Creamos un vector de datos
data <- c(1, 3, 5, 6, 7, 8, 10, 11, 12, 14)

# Selecionamos una muestra aleatoria de 5 elementos
sample(x=data, size=5)

[1] 10 12  5 14  7

El siguiente código muestra cómo seleccionar una muestra aleatoria de un vector con reemplazo.

# Creamos un vector de datos
data <- c(1, 3, 5, 6, 7, 8, 10, 11, 12, 14)

# Seleccionamos una muestra aleatoria de 5 elementos con remplazo
sample(x=data, size=5, replace=TRUE)

[1] 12  1  1  6 14

Muestra aleatoria de un Data Frame

El siguiente código muestra cómo seleccionar una muestra aleatoria de un marco de datos:

# Creamos un Data Frame
df <- data.frame(x=c(3, 5, 6, 6, 8, 12, 14),
                 y=c(12, 6, 4, 23, 25, 8, 9),
                 z=c(2, 7, 8, 8, 15, 17, 29))

# Seleccionamos una muestra aleatoria de las 3 filas del Data Frame
rand_df <- df[sample(nrow(df), size=3), ]

#Mostramos la muestra
rand_df

   x  y  z
4  6 23  8
7 14  9 29
1  3 12  2

Esto es lo que sucede en este fragmento de código:

1. Para seleccionar un subconjunto de un marco de datos en R, usamos la siguiente sintaxis: df [filas, columnas]

2. En el código anterior, seleccionamos aleatoriamente una muestra de 3 filas del marco de datos y todas las columnas.

3. El resultado final es un subconjunto del marco de datos con 3 filas seleccionadas al azar.

Es importante tener en cuenta que cada vez que usamos la función sample () , R seleccionará una muestra diferente ya que la función elige valores al azar.

Para replicar los resultados de algún análisis, asegúrese de usar set.seed (algún número) para que la función sample () elija la misma muestra aleatoria cada vez. Por ejemplo:

#En este ejemplo, podrás replicas los mismos resultados
set.seed(23)

# Creamos un Data Frame
df <- data.frame(x=c(3, 5, 6, 6, 8, 12, 14),
                 y=c(12, 6, 4, 23, 25, 8, 9),
                 z=c(2, 7, 8, 8, 15, 17, 29))

# Seleccionamos una muestra aleatoria de 3 elementos por cada fila
rand_df <- df[sample(nrow(df), size=3), ]

# Mostramos la muestra
rand_df

   x  y  z
5  8 25 15
2  5  6  7
6 12  8 17

Cada vez que ejecute el código anterior, se seleccionarán las mismas 3 filas del marco de datos cada vez.

Recursos adicionales

Muestreo estratificado en R (con ejemplos)
Muestreo sistemático en R (con ejemplos)
Muestreo de conglomerados en R (con ejemplos)

I’m a Bachelor of Economics gratuaded from the National University of San Agustin. I have experience in Python, R and other languages with aplications in Finance or Econometrics, I also have knowledge of statistics and econometrics. If you need help on some issues you can write to me.

Deja un comentario

Un resumen de cinco números es una forma de resumir un conjunto de datos utilizando los siguientes cinco valores: El…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!