Como mover a partir de um script para uma função em R
Indo de um script para uma função não é preciso muito esforço de todos. Em R, uma função é essencialmente um pedaço de código que é executado consecutivamente e sem interrupção. Dessa forma, uma 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ável 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.
Fazendo o script
Suponha que você queira apresentar números fracionários (por exemplo, 1/2) como porcentagens, bem arredondados para uma casa decimal. Aqui é como conseguir isso:
Multiplicar os números fracioná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 essas 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; - round (x * 100, dígitos = 1) resultado lt; - pasta (por cento, # 147 -% # 148-, Set = # 147- # 147-) print (resultado)
Se você salvar este script como um arquivo de script - por exemplo, pastePercent.R - Agora você pode chamar esse script no console com o seguinte comando:
> Fonte (# 147-pastePercent.R # 148 -) [1] # 147-45,8% # 148- # 147-166,5% # 148- # 147-83,1% # 148-
Que funciona esplendidamente, contanto que você quiser 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 o abastecimento, sem eco, e Ctrl + Shift + Enter para o abastecimento com eco.
Transformar o script
Para fazer 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 todos os matemáticos 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 percentagens brilhantes no mundo.
Para construir sua fábrica, alterar o script para o seguinte código:
addPercent lt; - função (x) {por cento lt; - round (x * 100, dígitos = 1) resultado lt; - pasta (por cento, # 147 -% # 148-, Set = # 147- # 147-) 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 da frente, 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 chaves é 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 para a transformação. Agora, a função tem um nome bom e está pronto para usar.
Você não pode especificar na lista argumento de 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 de 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.