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