Função VARIF

Gera a variância de valores por grupo em uma coluna que atende a uma condição específica.

OBSERVAÇÃO: quando adicionada a uma transformação, essa função é aplicada à amostra atual. Se você alterar a amostra ou executar o job, os valores calculados para essa função serão atualizados. As transformações que alteram o número de linhas nas etapas seguintes do roteiro não afetam os valores calculados para esta etapa.

Para mais informações sobre como a plataforma calcula a variância, consulte Função VAR.

Uso básico

pivot value: VARIF(testScores, ((testScores > 0) && (testScores < 90)) group:studentId limit:1

Saída: gera uma tabela de duas colunas contendo os valores exclusivos de studentId e a variação da coluna testScores referente a studentId quando o valor de testScores estiver entre 0 e 90. O parâmetro limit define o número máximo de colunas de saída.

Sintaxe

pivot value:VARIF(col_ref, test_expression) [group:group_col_ref] [limit:limit_count]

ArgumentoObrigatório?Tipo de dadosDescrição
col_refSstringReferência à coluna que você quer avaliar.
test_expressionSstringExpressão que é avaliada. Precisa gerar o valor true ou false.

Para mais informações sobre os padrões de sintaxe, consulte Observações de sintaxe da documentação da linguagem.

Para mais informações sobre os parâmetros group e limit, consulte Transformação Pivot.

col_ref

Nome da coluna cujos valores você quer usar no cálculo. A coluna precisa ser um tipo numérico (inteiro ou decimal).

Observações sobre o uso:

Obrigatório?Tipo de dadosValor de exemplo
SimString que corresponde ao nome da colunamyValues

test_expression

Esse parâmetro contém a expressão a ser avaliada. Essa expressão precisa gerar um valor booleano (true ou false).

Observações sobre o uso:

Obrigatório?Tipo de dadosValor de exemplo
SimExpressão de string que gera o valor true ou false(LastName == 'Mouse' && FirstName == 'Mickey')

Exemplos

Exemplo: funções de cálculo condicional

Este exemplo ilustra como você pode usar as seguintes funções de cálculo condicional para analisar dados meteorológicos:

  • AVERAGEIF: média de um conjunto de valores por grupo que atende a uma condição especificada. Consulte Função AVERAGEIF.
  • MINIF: mínimo de um conjunto de valores por grupo que atende a uma condição especificada. Consulte Função MINIF.
  • MAXIF: máximo de um conjunto de valores por grupo que atende a uma condição especificada. Consulte Função MAXIF.
  • VARIF - variância de um conjunto de valores por grupo que atende a uma condição especificada. Consulte Função VARIF.
  • STDEVIF - desvio padrão de um conjunto de valores por grupo que atende a uma condição especificada. Consulte Função STDEVIF.

Fonte:

Veja alguns exemplos de dados meteorológicos:

datecityraintempwind
1/23/17Valleyville0.0012.86.7
1/23/17Center Town0.319.45.3
1/23/17Magic Mountain0.000.07.3
1/24/17Valleyville0.2517.23.3
1/24/17Center Town0.541.17.6
1/24/17Magic Mountain0.325.08.8
1/25/17Valleyville0.023.36.8
1/25/17Center Town0.833.35.1
1/25/17Magic Mountain0.59-1.76.4
1/26/17Valleyville1.0815.04.2
1/26/17Center Town0.966.17.6
1/26/17Magic Mountain0.77-3.93.0
1/27/17Valleyville1.007.22.8
1/27/17Center Town1.3220.00.2
1/27/17Magic Mountain0.775.65.2
1/28/17Valleyville0.12-6.15.1
1/28/17Center Town0.145.04.9
1/28/17Magic Mountain1.501.10.4
1/29/17Valleyville0.3613.37.3
1/29/17Center Town0.756.19.0
1/29/17Magic Mountain0.603.36.0


Transformação:

Para calcular a temperatura média para dias chuvosos por cidade:

derive type:single value:AVERAGEIF(temp, rain > 0) group:city as:'avgTempWRain'

Para calcular o vento máximo para dias abaixo de zero por cidade:

derive type:single value:MAXIF(wind,temp < 0) group:city as:'maxWindSubZero'

Para calcular a temperatura mínima quando a velocidade do vento é inferior a 5 milhas por hora em cada cidade:

derive type:single value:MINIF(temp,wind<5) group:city as:'minTempWind5'

Para calcular a variação de temperatura para dias chuvosos por cidade:

derive type:single value:VARIF(temp,rain >0) group:city as:'varTempWRain'

Para calcular o desvio padrão na precipitação para Center Town:

derive type:single value:STDEVIF(rain,city=='Center Town') as:'stDevRainCT'

Use as seguintes transformações para formatar a saída gerada. Observe o valor do marcador de posição $col para as transformações de várias colunas:

set col:stDevRainCenterTown,maxWindSubZero value:numformat($col,'##.##')

Como a transformação a seguir depende de dados que tenham apenas um dígito significativo, recomendamos uma formatação diferente:

set col:varTempWRain,avgTempWRain,minTempWind5 value:numformat($col,'##.#')

Resultados:

datecityraintempwindavgTempWRainmaxWindSubZerominTempWind5varTempWRainstDevRainCT
1/23/17Valleyville0.0012.86.78.35.17.263.80,37
1/23/17Center Town0.319.45.37.3 532.60,37
1/23/17Magic Mountain0.000.07.31.66.43-3.9120,37
1/24/17Valleyville0.2517.23.38.35.17.263.80,37
1/24/17Center Town0.541.17.67.3 532.60,37
1/24/17Magic Mountain0.325.08.81.66.43-3.9120,37
1/25/17Valleyville0.023.36.88.35.17.263.80,37
1/25/17Center Town0.833.35.17.3 532.60,37
1/25/17Magic Mountain0.59-1.76.41.66.43-3.9120,37
1/26/17Valleyville1.0815.04.28.35.17.263.80,37
1/26/17Center Town0.966.17.67.3 532.60,37
1/26/17Magic Mountain0.77-3.93.01.66.43-3.9120,37
1/27/17Valleyville1.007.22.88.35.17.263.80,37
1/27/17Center Town1.3220.00.27.3 532.60,37
1/27/17Magic Mountain0.775.65.21.66.43-3.9120,37
1/28/17Valleyville0.12-6.15.18.35.17.263.80,37
1/28/17Center Town0.145.04.97.3 532.60,37
1/28/17Magic Mountain1.501.10.41.66.43-3.9120,37
1/29/17Valleyville0.3613.37.38.35.17.263.80,37
1/29/17Center Town0.756.19.07.3 532.60,37
1/29/17Magic Mountain0.603.36.01.66.43-3.9120,37

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.