EXEMPLO: funções de comparação 2

Na cidade de Circleville, os cidadãos podem manter um único círculo de colheita no quintal, desde que sigam os regulamentos municipais. Veja a seguir alguns dados sobre o tamanho dos círculos de colheita na cidade, com uma entrada separada para cada casa. Os limites são exibidos nas colunas adjacentes, com as colunas inclusive indicando se os valores mínimos ou máximos são inclusivos.

Dica: como parte deste exercício, veja como é possível ampliar seu roteiro para realizar uma análise financeira simples dos dados.

Fonte:

LocalRadius_ftminRadius_ftminInclusivemaxRadius_ftmaxInclusive
House155.510Y25N
House21210Y25N
House314,2510Y25N
House43.510Y25N
House52710Y25N

Transformação:

Após o carregamento dos dados na página "Transformer", comece a comparar os valores das colunas:

derive type:single value: LESSTHANEQUAL(Radius_ft,minRadius_ft) as:'tooSmall'

Ainda que seja exata, a transformação acima não leva em conta o valor minInclusive, sujeito a alterações como parte das etapas. Em vez disso, exclua a transformação anterior e use a próxima, que leva em consideração a outra coluna:

derive type:single value: IF(minInclusive == 'Y',LESSTHANEQUAL(Radius_ft,minRadius_ft),LESSTHAN(Radius_ft,minRadius_ft)) as:'tooSmall'

Nesse caso, a função IF testa se o valor mínimo é inclusivo. Valores de 10 são permitidos. Se for esse o caso, a função LESSTHANEQUAL será aplicada. Do contrário, a função LESSTHAN será usada. Para o limite máximo, aplica-se a etapa abaixo:

derive type:single value: IF(maxInclusive == 'Y', GREATERTHANEQUAL(Radius_ft,maxRadius_ft),GREATERTHAN(Radius_ft,maxRadius_ft)) as:'tooBig'

Agora, é possível realizar análises desses dados. Primeiramente, insira uma coluna contendo o valor da multa por pé acima do máximo ou abaixo do mínimo. Antes do primeiro comando derive, insira este a seguir, que é a multa ($15.00) para cada pé acima ou abaixo dos limites:

derive type:single value: 15 as:'fineDollarsPerFt'

No final da receita, adicione a nova linha abaixo, que calcula a multa para círculos de colheita que forem muito pequenos:

derive type:single value: IF(tooSmall == 'true', (minRadius_ft - Radius_ft) * fineDollarsPerFt, 0.0) as: 'fine_Dollars'

O exemplo anterior captura violações muito pequenas. Para capturar também violações muito grandes, altere a linha acima para:

derive type:single value: IF(tooSmall == 'true', (minRadius_ft - Radius_ft) * fineDollarsPerFt, if(tooBig == 'true', (Radius_ft - maxRadius_ft) * fineDollarsPerFt, '0.0')) as: 'fine_Dollars'

No lugar da expressão "false" original (0.0), o procedimento anterior adiciona o teste para valores muito grandes, assim todas as multas são incluídas em uma única coluna. Reformate a coluna fine_Dollars para o formato em dólar:

set col: fine_Dollars value: NUMFORMAT(fine_Dollars, '$###.00')

Resultados:

Depois de excluir as colunas usadas no cálculo e mover as restantes, você provavelmente acabará com um conjunto de dados semelhante ao seguinte:

LocalfineDollarsPerFtRadius_ftminRadius_ftminInclusivemaxRadius_ftmaxInclusivefineDollars
House11555.510Y25NUS$ 457,50
House2151210Y25NUS$ 0,00
House31514,2510Y25NUS$ 0,00
House4153.510Y25NUS$ 97,50
House5152710Y25N$30.00

Agora que você criou todos os cálculos para gerar esses valores, altere os valores de minRadius_ft, maxRadius_ft e fineDollarsPerFt para analisar a receita resultante. Antes ou depois da transformação em que o valor de fineDollarsPerFt é configurado, insira algo com o seguinte formato:

set col: minRadius_ft value:'12.5'

Depois de adicionar esta etapa, selecione a última linha na receita. Assim, você vê como os valores na coluna fineDollars foram atualizados.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Google Cloud Dataprep
Precisa de ajuda? Acesse nossa página de suporte.