Como usar se ?? Else declarações em r

Video: Curso de javascript - Aula 5 (Switch e Else If)

Ao usar R, às vezes você precisa de sua função para fazer alguma coisa, se uma condição é verdadeira e outra coisa se não é. Você poderia fazer isso com dois E se declarações, mas há uma maneira mais fácil em R: um if ... else declaração. A if ... else declaração contém os mesmos elementos que um E se declaração (veja a seção anterior), e, em seguida, alguns extras:

  • a palavra-chave outro, colocado depois do primeiro bloco de código

  • Um segundo bloco de código, contido dentro de chaves, que tem de ser realizada se e apenas se o resultado da condição na E se() declaração é FALSO

Em alguns países, a quantidade de imposto sobre o valor (VAT) que tem de ser pago depende se o cliente é uma organização pública ou privada acrescentou. Imagine que organizações públicas têm de pagar apenas 6 por cento de IVA e organizações privadas têm de pagar 12 por cento de IVA. Você pode adicionar um argumento extra público ao priceCalculator () funcionar e aprová-lo da seguinte forma para adicionar a quantidade correta de IVA:

Video: Linguagem C - Como usar a estrutura else if

se (hora gt; 100) net.price lt; - net.price * 0.9if (público) {tot.price lt; - net.price * 1,06} else {tot.price lt; - net.price * 1,12} round (tot.price)}

Se você enviar este código para o console, você pode testar a função. Por exemplo, se você trabalhou por 25 horas, o código a seguir dá-lhe os diferentes montantes que cobram por organizações públicas e privadas, respectivamente:

gt; priceCalculator (25, público = TRUE) [1] 1060gt; priceCalculator (25, público = FALSE) [1] 1120

Isso funciona bem, mas como é que funciona?



Se você olhar para o if ... else declaração na função anterior, você encontrar esses elementos. Se o valor do argumento público é VERDADE, o valor total é calculada como 1,06 vezes o preço líquido. Caso contrário, o valor total é 1,12 vezes o preço líquido.

o E se declaração precisa de um valor lógico entre os parênteses. Qualquer expressão que você colocar entre parênteses é avaliado antes de ser passado para o E se declaração. Então, se você trabalhar com um valor lógico diretamente, você não tem que especificar uma expressão em tudo. Utilizando, por exemplo, if (== pública TRUE) é redundante.

Além disso, no caso de um if ... else declaração que você pode deixar cair as chaves, se existirem ambos os blocos de código de apenas uma única linha de código. Então, você poderia simplesmente esquecer as chaves e espremer todo if ... else declaração em uma única linha. Ou você mesmo poderia escrevê-lo como este:

se tot.price (público) lt; - * net.price 1,06 elsetot.price lt; - * 1,12 net.price

colocar o outro declaração no final de uma linha e não o início do próximo é uma boa idéia.

Em geral, R lê várias linhas como uma única linha, desde que é absolutamente claro que o comando ainda não está terminado. Se você colocar outro no início da segunda linha, R considera a primeira linha de terminado e reclama. Você pode colocar outro no início de uma linha seguinte só se você fazê-lo dentro de uma função e você fonte o arquivo completo de uma vez para R.

Mas você pode fazer isso mais curto. o E se declaração funciona como uma função e, portanto, ele também retorna um valor. Como resultado, você pode atribuir esse valor a um objeto ou usá-lo em cálculos. Então, em vez de recalcular preço líquido e atribuindo o resultado a tot.price dentro dos blocos de código, você pode usar o if ... else declaração como esta:

tot.price lt; - net.price * if (público) 1,06 pessoa 1,12

R vai primeiro avaliar o if ... else declaração, e multiplicar o resultado por preço líquido. O resultado deste é então atribuído a tot.price. Isso difere nem um iota do resultado das cinco linhas de código que usamos para o original if ... else declaração.


Publicações relacionadas