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`

menu