Como a ansa através de valores de r
Às vezes, ao fazer escolhas usando R, você pode usar apenas um único valor para basear sua escolha. Você poderia aplicar esse código em cada valor que você tem à mão, mas faz muito mais sentido para automatizar esta tarefa.
Conteúdo
Video: Guns N' Roses - Patience
construir um para laço
Como em muitas outras linguagens de programação, você repetir uma ação para cada valor em um vetor usando um para ciclo. Você construir um para circuito em I como se segue:
for (i em valores) {... fazer alguma coisa ...}
este para ciclo é constituído pelas seguintes partes:
Video: Hora do Trader | Operando com Itaborai Santos - Perguntas e Respostas
a palavra-chave para, seguido por parênteses.
Um identificador entre parênteses. Neste exemplo, usamos Eu, mas que pode ser qualquer nome de objeto que você gosta.
Video: Pares Ordenados e Plano Cartesiano
a palavra-chave dentro, que se segue ao identificador.
Video: iPhone 5C Réplica verde - Review e Unboxing
Um vector com os valores de varrer. Neste código de exemplo, usamos o objeto valores, mas que mais uma vez pode ser qualquer vector que você tem disponível.
Um bloco de código entre as cintas que tem de ser realizada para cada valor no objecto valores.
No bloco de código, você pode usar o identificador. Cada vez que R percorre o código, R atribui o próximo valor no vector com os valores para o identificador.
Calcular os valores em um para laço
Vamos dar mais uma olhada na priceCalculator () função. Mais cedo, vamos mostrar-lhe algumas possibilidades para se adaptar essa função para que possa aplicar uma taxa diferente do IVA para clientes públicos, privados e estrangeiros. Você não pode usar qualquer uma dessas opções de uma forma vectorized, mas você pode usar um para loop para que a função pode calcular o preço para vários clientes ao mesmo tempo.
Utilizar os valores do vector
adaptar o priceCalculator () função como se segue:
priceCalculator lt; - função (horas, pph = 40, cliente) {net.price lt; - * horas * pph IfElse (hora gt; 100, 0,9, 1) IVA lt; - numérico (0) para (i no cliente) {IVA lt; - c (IVA, switch (i, privado = 1,12, public = 1,06, 1))} tot.price lt; - * net.price VATround (tot.price)}
A primeira ea última parte da função de não ter mudado, mas na seção do meio, você faça o seguinte:
Criar um vetor numérico com comprimento 0 e chamá-lo CUBA.
Para cada valor no cliente vector, aplique interruptor() para selecionar a quantidade correta de IVA a ser pago.
Em cada rodada através do laço, adicione o resultado interruptor() no final do vector CUBA.
O resultado é um vetor CUBA que contém, para cada cliente, o IVA correto que deve ser aplicado. Você pode testar isso, adicionando, por exemplo, uma variável tipo para os clientes quadro de dados que você criou na seção anterior como este:
gt; clientes $ type lt; - c (, `no exterior` `público` `no exterior`, `private`) gt; priceCalculator (clientes $ horas, cliente = clientes $ tipo) [1] 1060 3960 5040 1600