Vídeo: R 2.3 - if() Statements, Logical Operators, and the which() Function 2024
Ao usar R, às vezes você precisa de sua função para fazer algo se uma condição for verdadeira e outra coisa se for não. Você poderia fazer isso com duas instruções if, mas há uma maneira mais fácil na declaração R: an if … else. Uma declaração if … else contém os mesmos elementos que uma instrução if (veja a seção anterior) e, em seguida, alguns extras:
-
A palavra-chave, colocada após o primeiro bloco de código
-
Um segundo bloco de código, contido em chaves, que deve ser realizado se e somente se o resultado de A condição na declaração if () é FALSE
Em alguns países, o valor do imposto sobre o valor agregado (IVA) que deve ser pago depende se o cliente é uma organização pública ou privada. Imagine que as organizações públicas devem pagar apenas 6% de IVA e organizações privadas devem pagar 12% de IVA. Você pode adicionar um argumento extra público ao preçoCalculator () func e adote-o da seguinte forma para adicionar o valor correto do IVA:
se (horas> 100) net. preço <- net. preço * 0. 9 se (público) {tot. preço <- net. preço * 1. 06} else {tot. preço <- net. preço * 1. 12} rodada (preço total)}
Se você enviar este código para o console, você pode testar a função. Por exemplo, se você trabalhou durante 25 horas, o seguinte código fornece os diferentes montantes que você cobra para organizações públicas e privadas, respectivamente: >> priceCalculator (25, public = TRUE) [1] 1060> priceCalculator (25, public = FALSE) [1] 1120
Isso funciona bem, mas como isso funciona?
A instrução if precisa de um valor lógico entre os parênteses. Qualquer expressão que você colocou entre os parênteses é avaliada antes de ser transmitida para a instrução if. Então, se você trabalha diretamente com um valor lógico, não é necessário especificar uma expressão. Usando, por exemplo, se (público == VERDADEIRO) é redundante.
se (público) tot. preço <- net. preço * 1. 06 mais tot. preço <- net. preço * 1. 12
A colocação da declaração else no final de uma linha e não o início do próximo é uma boa idéia.
dentro de uma função e você fornece o arquivo completo de uma vez para R. Mas você pode tornar isso mais curto. A instrução if funciona como uma função e, portanto, 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 a rede. preço e atribuição do resultado a tot. preço dentro dos blocos de código, você pode usar a declaração if … else como esta:
R avaliará a afirmação if … else e multiplicará o resultado pela rede. preço. O resultado disso é então atribuído a tot. preço. Isso não difere um iota do resultado das cinco linhas de código que usamos para a declaração original se … else.