Como selecionar amostras aleatórias em r: com exemplos


Para selecionar uma amostra aleatória em R, podemos usar a função sample() , que usa a seguinte sintaxe:

amostra(x, tamanho, substituir=FALSO, prob=NULO)

Ouro:

  • x: um vetor de elementos para escolher.
  • tamanho: tamanho da amostra.
  • substituir: se deve amostrar com reposição ou não. O valor padrão é falso.
  • prob: vetor de pesos de probabilidade para obter elementos do vetor. O padrão é NULO.

Este tutorial explica como usar esta função para selecionar uma amostra aleatória em R de um vetor e de um quadro de dados.

Exemplo 1: Amostra aleatória de um vetor

O código a seguir mostra como selecionar uma amostra aleatória de um vetor sem substituição :

 #create vector of data
data <- c(1, 3, 5, 6, 7, 8, 10, 11, 12, 14)

#select random sample of 5 elements without replacement
sample(x=data, size=5)

[1] 10 12 5 14 7

O código a seguir mostra como selecionar uma amostra aleatória de um vetor com substituição :

 #create vector of data
data <- c(1, 3, 5, 6, 7, 8, 10, 11, 12, 14)

#select random sample of 5 elements with replacement
sample(x=data, size=5, replace= TRUE )

[1] 12 1 1 6 14

Exemplo 2: amostra aleatória de um bloco de dados

O código a seguir mostra como selecionar uma amostra aleatória de um quadro de dados:

 #create 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))

#view data frame 
df

   X Y Z
1 3 12 2
2 5 6 7
3 6 4 8
4 6 23 8
5 8 25 15
6 12 8 17
7 14 9 29

#select random sample of three rows from data frame
rand_df <- df[ sample ( nrow (df), size= 3 ), ]

#display randomly selected rows
rand_df

   X Y Z
4 6 23 8
7 14 9 29
1 3 12 2

Aqui está o que está acontecendo neste trecho de código:

1. Para selecionar um subconjunto de um quadro de dados em R, usamos a seguinte sintaxe: df[linhas, colunas]

2. No código acima, selecionamos aleatoriamente uma amostra de 3 linhas do quadro de dados e de todas as colunas.

3. O resultado final é um subconjunto do quadro de dados com 3 linhas selecionadas aleatoriamente.

É importante ressaltar que toda vez que utilizarmos a função sample() , R irá selecionar uma amostra diferente já que a função escolhe os valores aleatoriamente.

Para reproduzir os resultados de certas análises, certifique-se de usar set.seed(some number) para que a função sample() escolha a mesma amostra aleatória todas as vezes. Por exemplo:

 #make this example reproducible
set.seed(23)

#create 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))

#select random sample of three rows from data frame
rand_df <- df[ sample ( nrow (df), size= 3 ), ]

#display randomly selected rows
rand_df

   X Y Z
5 8 25 15
2 5 6 7
6 12 8 17

Cada vez que você executar o código acima, as mesmas 3 linhas do quadro de dados serão selecionadas a cada vez.

Recursos adicionais

Amostragem estratificada em R (com exemplos)
Amostragem Sistemática em R (com Exemplos)
Amostragem de cluster em R: com exemplos

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *