Como usar Se Demonstrações em R
E se declarações podem ser muito úteis no R, como eles estão em qualquer linguagem de programação ,. Muitas vezes, você quer fazer escolhas e tomar dependente de um certo valor da ação.
Definindo uma escolha em seu código é bastante simples: Se esta condição for verdadeira, então realizar uma determinada tarefa. Muitas linguagens de programação deixar você fazer isso exatamente com essas palavras: E se . . . então. R torna ainda mais fácil: você pode soltar a palavra então e especificar a sua escolha em um E se declaração.
A E se declaração em R consiste em três elementos:
a palavra-chave E se
Um valor único lógica entre parênteses (ou uma expressão que leva a um único valor lógico)
Um bloco de código entre as cintas que tem de ser executada quando o valor lógico é VERDADE
Aqui está uma pequena função, priceCalculator (), que calcula o preço cobrado a um cliente com base nas horas de trabalho que você fez para esse cliente. A função deve ter o número de horas (horas) Eo preço por hora (pph) Como entrada. o priceCalculator () função poderia ser algo como isto:
priceCalculator lt; - função (horas, pph = 40) {net.price lt; - horas * pphround (net.price)}
Aqui está o que este código faz:
Com o função palavra-chave, você define a função.
Tudo entre as chaves é o corpo da função (ver Capítulo 8).
Entre os parênteses, você especificar os argumentos horas (Sem um valor padrão) e pph (Com um valor padrão de US $ 40 por hora).
Você calcula o preço líquido pela multiplicação horas de pph.
O resultado da última declaração no corpo da sua função é o valor retornado. Neste caso, este é o preço total arredondado para o dólar.
Você poderia deixar cair o argumento pph e basta multiplicar horas por 40. Mas isso significaria que, se, por exemplo, o seu colega utiliza uma taxa horária diferente, ele teria que mudar o valor no corpo da função, a fim de ser capaz de usá-lo. É uma boa prática de codificação para usar argumentos com valores padrão para qualquer valor que pode mudar. Se o fizer, faz com que uma função mais flexível e utilizável.
Agora imagine que você tem alguns grandes clientes que lhe dão um monte de trabalho. Para mantê-los felizes, você decide dar-lhes uma redução de 10 por cento sobre o preço por hora para as ordens que envolvem mais de 100 horas de trabalho. Assim, se o número de horas trabalhadas é maior do que 100, você calcular o novo preço multiplicando o preço de 0,9.
Você pode escrever que quase literalmente em seu código como este:
priceCalculator lt; - função (horas, pph = 40) {net.price lt; - horas * pphif (horas> 100) {net.price lt; - net.price * 0,9} round (net.price)}
Copie este código em um arquivo de script, e enviá-lo para o console para torná-lo disponível para uso. Se você experimentar esta função, você pode ver que a redução é dada apenas quando o número de horas é maior do que 100:
> priceCalculator (horas = 55) [1] 2200> priceCalculator (horas = 110) [1] 3960
Esta construção é a forma mais geral, você pode especificar um E se declaração. Mas se você tem apenas uma pequena linha de código no bloco de código, você não tem que colocar cintas em torno dele. Você pode alterar a completa E se declaração na função com a seguinte linha:
if (horas> 100) net.price lt; - * 0,9 net.price
A maneira usual de obter ajuda em uma função chamada, por exemplo, fun.name (?fun.name) Não funciona para E se. Para acessar a ajuda integrada para E se, você tem que citar o nome da função. Você pode usar aspas simples, aspas duplas, ou acentos graves. Cada uma das seguintes afirmações leva você para a página de ajuda para E se:
?'Se'? "Se"? `If`