Como mover a partir de um script para uma função em r
Video: [C] Aula 44 - Parâmetros da função
Conteúdo
Indo de um script para uma função não é preciso muito esforço em tudo. Em R, uma função é, essencialmente, uma parte do código que é executado consecutivamente e sem interrupção. Dessa forma, a função não difere muito de um script de execução usando o fonte() função.
No entanto, uma função tem duas vantagens muito agradáveis sobre roteiros:
As funções podem trabalhar com variável de entrada, para que você usá-lo com dados diferentes.
Funções retornam a saída como um objeto, para que possa trabalhar com o resultado dessa função.
A melhor maneira de aprender a nadar é por saltar no final profundo, tão próxima que você escrever uma função para ver como isso é fácil na R.
Fazer o script
Suponha que você queira apresentar números fracionários (por exemplo, 1/2) como porcentagens, bem arredondados para uma casa decimal. Veja como conseguir isso:
Video: Algoritmo e Programação III - Função, Parametros e Ponteiros
Multiplicar os números fraccionários por 100.
Arredondar o resultado para uma casa decimal.
Você pode usar o volta() função para fazer isso.
Colar um sinal de porcentagem após o número arredondado.
o colar() função está ao seu serviço para cumprir esta tarefa.
Imprimir o resultado.
o impressão() função faz isso.
Você pode facilmente traduzir estas etapas em um pequeno script para R. Então, abra um novo arquivo de script em seu editor e digite o seguinte código:
X lt; - c (0,458, 1,6653, 0,83112) por cento lt; - redondo (x * 100, dígitos = 1) resultado lt; - colar (por cento, “%”, setembro = ““) de impressão (resultado)
Se você salvar esse script como um arquivo de script - por exemplo, pastePercent.R - agora você pode chamar esse script no console com o seguinte comando:
gt; fonte ( “pastePercent.R”) [1] “45,8%” “166,5%” “83,1%”
Que funciona esplendidamente, contanto que você quer ver os mesmos três números cada vez que você chamar o script. Mas usar o roteiro de outros dados seria levemente inconveniente, porque você teria que mudar o script de cada vez.
Na maioria dos editores, você também pode fonte um script (enviar um arquivo script completo para o console R) com um simples clique. Em rstudio, isso é feito clicando no botão Fonte ou pressionando Ctrl + Shift + S para fornecimento sem eco, e Ctrl + Shift + Enter para o abastecimento com eco.
Transformar o script
Para tornar esse script em uma função, você precisa fazer algumas coisas. Imagine que o script como uma pequena fábrica que leva o material numérico cru e lustra-lo até percentagens brilhantes cada matemático vai anseiam.
Primeiro, você tem que construir o edifício da fábrica, de preferência com um endereço para que as pessoas saberiam para onde enviar os seus números. Então você tem que instalar um portão da frente para que possa obter os números brutos. Em seguida, você cria a linha de produção para transformar esses números. Finalmente, você tem que instalar um portão de trás para que você possa enviar suas porcentagens brilhantes no mundo.
Para construir sua fábrica, alterar o script para o seguinte código:
addPercent lt; - função (x) {por cento lt; - redondo (x * 100, dígitos = 1) resultado lt; - colar (por cento, “%”, setembro = ““) retorno (resultado)}
Dê uma olhada mais de perto as diferentes partes que compõem esta pequena fábrica. A função tem os seguintes elementos:
a palavra-chave função sempre deve ser seguido por parênteses. Diz-R que o que vem a seguir é uma função.
Os parênteses depois função formar o portão frontal, ou lista de argumentos, de sua função. Entre os parênteses, os argumentos para a função são dadas. Neste caso, há apenas um argumento, chamado X.
As chaves, {}, pode ser visto como as paredes de sua função. Tudo entre as cintas faz parte da linha de montagem, ou o corpo de sua função.
o Retorna() declaração é a porta de trás de sua função. O objeto que você colocar entre parênteses é retornado de dentro da função para o seu espaço de trabalho. Você pode colocar apenas um objeto entre os parênteses.
Se você colocar tudo isso junto, você tem uma função completa, mas R não sabe onde encontrá-lo ainda. Então, você pode usar o operador de atribuição lt; - para colocar esta função completa em um objeto chamado addPercent. Este é o endereço R pode enviar números de transformação. Agora, a função tem um nome bom e está pronto para usar.
Você não pode especificar na lista de argumentos que X deve ser um vector numérico. Por exemplo, se você tentar usar um vetor de caracteres como um valor para X, a multiplicação no interior do corpo irá lançar um erro porque não é possível multiplicar caracteres por um número. Se você deseja controlar qual tipo de objeto é dado como um argumento, você tem que fazê-lo manualmente, no corpo da função.