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

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

onde:

  • x: Um vetor de elementos a partir do qual se pode escolher.
  • tamanho: Tamanho da amostra.
  • substituir: Se a amostragem deve ser efectuada com substituição ou não. A predefinição é FALSO.
  • prob: Vetor de pesos de probabilidade para obter elementos do vetor. A predefinição é NULL.

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

Exemplo 1: Amostra aleatória de um vetor

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

 #criar um vetor de dados data <- c(1, 3, 5, 6, 7, 8, 10, 11, 12, 14) #selecionar uma amostra aleatória de 5 elementos sem substituição sample(x=data, size=5) 10 12 5 14 7 

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

 #criar vetor de dados data <- c(1, 3, 5, 6, 7, 8, 10, 11, 12, 14) #selecionar amostra aleatória de 5 elementos com substituição sample(x=data, size=5, replace= TRUE ) 12 1 1 6 14 

Exemplo 2: Amostra aleatória de um quadro de dados

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

 #criar quadro de dados 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)) #visualizar quadro de dados df x y z 1 3 12 2 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 #selecionar amostra aleatória de três linhas do quadro de dados rand_df <- df[ sample ( nrow (df), size= 3 ), ] #exibir linhas seleccionadas aleatoriamente rand_df x y z 4 6 23 8 7 14 9 29 1 3 12 2 

Eis o que está a acontecer neste pedaço de código:

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

2. No código acima, seleccionamos aleatoriamente uma amostra de 3 linhas da base de dados e todos colunas.

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

É importante notar que cada vez que usamos o amostra() o R seleccionará uma amostra diferente, uma vez que a função escolhe os valores aleatoriamente.

Para replicar os resultados de algumas análises, certifique-se de que utiliza set.seed(algum número) para que a função sample() escolha sempre a mesma amostra aleatória. Por exemplo:

 #fazer este exemplo reprodutível set.seed(23) #criar quadro de dados 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)) #selecionar amostra aleatória de três linhas do quadro de dados rand_df <- df[ sample ( nrow (df), size= 3 ), ] #exibir linhas seleccionadas aleatoriamente rand_df x y z 5 8 25 15 2 5 6 7 6 12 8 17 

De cada vez que executar o código acima, serão seleccionadas as mesmas 3 linhas do quadro de dados.