Como fazer um Exemplo reproduzível mínima para obter ajuda com R

Quando você pergunta a comunidade R para ajudar, você vai ter o conselho mais útil se você sabe como fazer um exemplo reprodutível mínima. UMA exemplo reprodutível é uma amostra de código e dados que qualquer outro usuário pode executar e obter os mesmos resultados que você faz. UMA mínimo reprodutível exemplo é o menor possível exemplo que ilustra o problema- consiste no seguinte:

  • Um pequeno conjunto de dados de exemplo

  • Um pequeno trecho de código que reproduz o erro

  • As informações necessárias sobre a sua versão R, o sistema está sendo executado, e os pacotes que você está usando

Se você quiser saber o que é um exemplo reprodutível mínima parece, dê uma olhada nos exemplos nos arquivos de R Ajuda. Em geral, todo o código dado nos arquivos de R Ajuda preenche os requisitos de um exemplo reprodutível mínima.

Criar dados de amostras com valores aleatórios

Na maioria dos casos, você pode usar dados aleatórios para ilustrar um problema. R tem algumas funções internas úteis para gerar números aleatórios e outros dados aleatórios. Por exemplo, para fazer um vector de números aleatórios, usar rnorm () para a distribuição normal ou runif () para uma distribuição uniforme. Para fazer um vetor aleatório com cinco elementos, tente o seguinte:

> Set.seed (1)> X lt; - rnorm (5)> x [1] -0,6264538 0,1836433 -0,8356286 1,5952808 0,3295078

Você pode usar o set.seed () função para especificar um valor de sementes de partida para a geração de números aleatórios. Ao definir um valor de semente, você garante que os números aleatórios são os mesmos cada vez que você executar o código. Isso pode ser sentido no código de produção, mas é essencial para um exemplo reprodutível. Ao definir uma semente, você garante que seu código irá produzir os mesmos resultados que uma outra pessoa executar o código.

Se você deseja gerar valores aleatórios de um conjunto predeterminado, utilize o amostra() função. Esta função é um pouco como lidar a partir de um baralho de cartas. Em um jogo de cartas, você tem 52 cartas e você sabe exatamente quais as cartas estão no baralho. Mas cada negócio será diferente. Você pode simular tratar uma mão de sete cartas, usando o seguinte código:

> cartões lt; - c (1: 9, "J", "Q", "K", "A")> ternos lt; - c ( "Spades", "Diamonds", "corações", "clubes")> baralho lt; - colar (rep (ternos, cada = 13), cartões)> set.seed (123)> amostra (deck, 7) [1] "Diamonds 2" "clubes 2" "diamantes de 8" "clubes 5" [ 5] "clubes 7" "Spades 3" "diamantes K"

Por padrão, amostra() usa cada valor apenas uma vez. Mas às vezes você quer elementos desta seção para aparecer várias vezes. Neste caso, você pode usar o argumento substituir = TRUE. Se você deseja criar uma amostra de tamanho 12 que consiste nas três primeiras letras do alfabeto, você usa o seguinte:

> set.seed (5)> da amostra (letras [1: 3], 12, substituir = TRUE) [1] "A" "C" "C" "A" "A" "C" "B" "C" "C" "A" "A" "B"

criando um quadro de dados com amostra de dados é simples:

> Set.seed (42)> DAT lt; - data.frame (+ x = amostra (1: 5), + y = amostra (c ( "sim", "não"), 5, substituir = TRUE) +)> datx y1 5 no2 4 no3 1 Sim4 2 no5 3 não

menu