Você pode adicionar e calcular novos campos para seu conjunto de dados usando a tabela de dados ou engenharia de dados. Os campos calculados permitem que você crie valores, como taxas de crescimento, perda percentual e alterações ao longo do tempo, escolhendo campos do seu conjunto de dados e aplicando operadores e funções.
Você também pode calcular campos utilizando as ferramentas Calcular % Alteração, Calcular Relação, e Calcular Pontuação Z em Localizar Respostas.
Dica:
Utilize a tabela de dados para adicionar dados normalizados no seu conjunto e dados para mapas, gráficos e tabelas. Após os dados serem calculados e adicionados no seu conjunto de dados, altere o tipo do campo para identificá-lo como um campo de taxa/proporção. Para mais informações sobre normalização de dados, consulte Mapas coropléticos.
Calcular um campo na tabela de dados
Os campos calculados na tabela de dados só aparecem na pasta de trabalho e não são adicionados ao conjunto de dados original. Se você deseja preservar o campo calculado fora do livro de tarefas, é possível criar uma nova camada de feição compartilhando o conjunto de dados ou usando engenharia de dados.
Anotação:
A tabela de dados fornece uma visualização representativa dos seus dados, e tem um limite de exibição de 2.000 linhas. A classificação da sua tabela em ordem crescente e decrescente permite a você visualizar as 2.000 linhas superiores e as 2.000 linhas inferiores. Todos os cálculos são realizados no conjunto de dados completo.
Conclua as etapas a seguir para calcular um campo na tabela de dados:
- Abra uma pasta de trabalho e adicione dados, se necessário.
- A partir do painel de dados, clique no botão Opções do conjunto de dados próximo ao conjunto de dados onde você deseja adicionar um campo calculado.
- Clique em Visualizar tabela de dados.
- Clique em + Campo.
Uma coluna denominada Novo Campo é anexada na tabela.
Anotação:
Você pode redimensionar e reordenar as colunas, mas estas alterações não são salvas.
- Clique no cabeçalho da nova coluna e forneça um nome mais descritivo.
- Clique em fx ou Inserir função de cálculo para exibir um menu com funções, nomes de campo e operadores para construir sua fórmula.
Os comandos de teclado de equivalente também podem ser utilizados para substituir qualquer um dos botões do menu fx .
- Utilize as funções, campos e operadores para completar seu cálculo como exigido.
- Clique em Executar.
Se o botão Executar não estiver habilitado, há um erro na sintaxe do seu cálculo.
O novo campo calculado aparece no final do seu conjunto de dados. Você pode remover um campo calculado selecionando e clicando no botão Excluir campo calculado .
Calcular uma coluna usando engenharia de dados
Anotação:
A engenharia de dados está disponível no Insights desktop. Todos os usuários do Insights in ArcGIS Online e Insights in ArcGIS Enterprise têm acesso ao Insights desktop. Para mais informações, consulte Visão Geral do ArcGIS Insights.
A engenharia de dados está atualmente em Visualização.
A ferramenta Calcular coluna pode ser adicionada a um modelo de dados e usada para adicionar colunas ao conjunto de dados de saída. As colunas calculadas em um livro de tarefas de dados serão adicionadas permanentemente ao conjunto de dados de saída, em vez de existirem apenas no livro de tarefas.
Conclua as etapas a seguir para calcular uma coluna usando engenharia de dados:
- Abra um livro de tarefas de dados no Insights desktop e adicione dados, se necessário.
- Na barra de ferramentas lateral, clique no botão Calcular coluna .
- Para o parâmetro Novo nome da coluna, digite o nome da nova coluna.
Anotação:
Os bancos de dados suportados no Insights apenas suportam letras, números e sublinhados para nomes de colunas. Caracteres não suportados em nomes de colunas são convertidos em sublinhados quando salvos em um banco de dados (por exemplo population/sq mile, é convertido para population_sq_mile). Para obter melhores resultados, aplique um nome de coluna que use apenas caracteres suportados e atualize o nome alternativo da coluna com outros caracteres, se necessário.
- Na caixa Expressão de coluna, use as funções, nomes de coluna e operadores para concluir o cálculo conforme necessário.
Comandos de teclado equivalentes também podem ser usados para substituir qualquer um dos botões.
Anotação:
Se o livro de tarefas de dados tiver mais de um conjunto de dados, as opções de entrada serão baseadas na tabela ativa.
- Clique em Executar.
Se o botão Executar não estiver habilitado, há um erro na sintaxe do seu cálculo.
A nova coluna calculada é adicionada à tabela e a ferramenta Calcular coluna é adicionada ao modelo de dados.
Operadores
O cálculo de um campo pode exigir ambos operadores matemáticos e lógicos. Os operadores seguintes estão disponíveis para calcular campos:
Operador | Uso |
---|---|
+ | Adição. |
- | Subtração. |
× | Multiplicação. O comando de teclado de equivalente é *. |
÷ | Divisão. O comando de teclado de equivalente é /. |
xy | Função de potência. O comando de teclado de equivalente é ^. |
< | Menor que. |
> | Maior que. |
= | Igual a. |
<= | Menor ou igual a. |
>= | Maior ou igual a. |
<> | Não igual a. |
, | Vírgula, utilizado como um separador entre componentes de sintaxe em funções. |
( | Parêntese à esquerda. |
) | Parêntese à direita. |
AND | O operador lógico onde todas as condições devem ser atendidas. |
OR | O operador lógico onde uma das condições devem ser atendidas. |
IS NULL | Um operador binário que testa se os valores em um campo são nulos. Um valor de saída de 0 é atribuído quando o valor testado não é nulo e um valor de saída de 1 é atribuído quando o valor testado é nulo. |
IS NOT NULL | Um operador binário que testa se os valores em um campo não são nulos. Um valor de saída 0 é atribuído quando o valor testado é nulo e um valor de saída 1 é atribuído quando o valor testado não é nulo. |
Anotação:
Operadores matemáticos, como +, -, > e =, são compatíveis com campos de número e taxa/proporção. Funções, como CONCATENATE() e DATEDIF() podem ser usadas no lugar de alguns operadores matemáticos para campos de string e campos de data/hora, respectivamente.
Os operadores IS NULL e IS NOT NULL são compatíveis com todos os tipos de campo (string, número, taxa/proporção e data/hora), exceto locais. Alguns campos de string com valores nulos podem ser configurados como strings vazias. Nestes casos, IS NULL e IS NOT NULL não retornarão os resultados esperados. Ao contrário, as expressões field="" e field<>"" deverão ser usadas no lugar de field IS NULL e field IS NOT NULL, respectivamente.
Os operadores AND e OR pode ser utilizados para ligar condições com sintaxe diferente das suas funções lógicas correspondentes. Os exemplos seguintes mostram cálculos equivalentes utilizando as funções e operadores:
Anotação:
Ao calcular campos, AND e OR devem ser utilizados dentro da função IF() .
Função | Operador |
---|---|
IF(AND(MeanAge>=18, MeanAge<=33),"Millennial","Other") | IF(MeanAge>=18 AND MeanAge<=33,"Millennial","Other") |
IF(OR(Crime="Theft", Crime="Theft from vehicle", Crime="Shoplifting"), "Larceny", "Other") | IF(Crime="Theft" OR Crime="Theft from vehicle" OR Crime="Shoplifting", "Larceny", "Other") |
Funções
As funções podem ser acessadas utilizando o botão fx ou o campo Inserir função de cálculo na tabela de dados. Há quatro tipos de funções: string, numérica, data e lógica.
Quando você adiciona uma função ao seu cálculo, um pop-up é exibido com a sintaxe da função. Você pode remover o pop-up usando o botão de fechar , ou exibir novamente o pop-up clicando na função no campo Inserir função de cálculo.
Funções de string
A maioria das funções de string utilizam entradas de string para produzir saídas de string. As duas exceções são a função VALUE() e a função FIND(), que ambas utilizam entradas de string para produzir saídas numéricas.
O texto de entrada em funções de string pode ser literal (texto cercado por aspas) ou valores do campo de categoria. A seguinte tabela utiliza campos de categoria para seus exemplos, junto com valores de exemplo que podem ser localizados nestes campos. As aspas são utilizadas nos valores de campo para demonstrar quais campos têm dados categóricos.
Sintaxe | Descrição | Exemplo |
---|---|---|
CONCATENATE(text1, [text2], ... ) | Concatena dois ou mais valores de string. | Um conjunto de dados de escolas na California contém campos de endereço de rua, cidade e Cep. Um único campo de endereços pode ser criado utilizando a função CONCATENATE():
|
FIND(find_text, within_text, [start_num]) | Fornece a localização do texto especificado (caractere ou caracteres) dentro de uma string ou campo de texto. A função FIND() pode ser mais útil quando utilizada junto com outras funções, como MID(), LEFT() ou RIGHT(). | Um conjunto de dados contém um campo com endereços de rua (incluindo número e nome de rua). Para classificar os dados por rua, o nome de rua tem que ser removido a partir do resto do endereço utilizando a função MID(). Porém, cada número é um comprimento diferente, então o start_num será diferente para cada linha. O start_num pode ser localizado utilizando a função FIND():
|
LEFT(text, [num_chars]) | Retorna a parte de um campo de texto.
| Um conjunto de dados de acidentes de tráfego inclui um campo de categoria com o dia do acidente, inclusive o dia da semana, data e ano. Para estudar os acidentes pelo dia da semana, um novo campo pode ser calculado para mostrar os primeiros três caracteres do campo (iniciando com dia da semana) utilizando a função LEFT():
|
LOWER(text) | Retorna uma expressão de caractere com todos os dados convertidos em letra minúscula. | Um departamento de trabalhos públicos está compilando uma lista de sinais de rua que precisam ser substituídas. À medida que novas entradas foram adicionadas à lista, o formato do campo Status se tornou fora do padrão, dificultando a exibição dos sinais com valores únicos. O campo Status pode ser padronizado para ter todas as letras minúsculas utilizando a função LOWER() :
|
MID(text, start_num, [num_chars]) | Retorna a parte de um campo de texto.
| Um conjunto de dados de escolas na California contém campos de endereço de rua, cidade e Cep. O nome da rua pode ser isolado do endereço de rua utilizando a função MID():
|
RIGHT(text, [num_chars]) | Retorna a parte de um campo de texto.
| Um conjunto de dados de parques nacionais inclui um campo com o nome do parque e o código de estado de dois dígitos. Para simbolizar o parque por estado, um novo campo pode ser adicionado e calculado utilizando a função RIGHT():
|
SUBSTITUTE(source_text, old_text, new_text) | Substitui o texto antigo em uma string com o novo texto especificado.
| Um conjunto de dados de localizações de caldeirão contém um campo com nomes de rua. O conjunto de dados precisa ser atualizado quando Main Street é renomeado para 5th Street. O campo street_name pode ser atualizado utilizando a função SUBSTITUTE() :
Anotação:A função SUBSTITUTE() substituirá todas as ocorrências do old_text com new_text. Por exemplo, na função SUBSTITUTE("aba", "a", "c") o texto resultante é "cbc". |
TRIM(text) | Retorna a string com os espaços extras removidos do final. | Um serviço da feição contém campos de texto com os espaços extras no início e fim dos seus valores. Os espaços extras podem ser removidos utilizando a função TRIM():
|
UPPER(text) | Retorna uma expressão de caractere com todos os dados convertidos em letra maiúscula. | Um conjunto de dados com localizações das sedes de NGO contém um campo com os nomes completos das organizações e seus acrônimos quando aplicáveis. Os acrônimos podem ser padronizados para ter todas as letras maiúsculas utilizando a função UPPER():
|
VALUE(text, [format]) | Converte texto para um número.
Anotação:Funções agrupadas dentro da função VALUE() podem ter resultados de saída inesperados se um format não for fornecido. Portanto, é recomendado que você especifique um format ao utilizar a função VALUE() . A função VALUE() não suporta atualmente converter texto para números negativos. | Um conjunto de dados de loja de varejo tem um campo de categoria com as quantidades de renda. O campo Revenue pode ser convertido em valores numéricos utilizando a função VALUE() .
|
Funções numéricas
As funções numéricas utilizam entradas de número para produzir saídas de número. As funções numéricas são mais prováveis de serem utilizadas junto com outras funções ou como um método de transformação de dados.
Os números de entrada podem ser números literais ou campos de números. Alguns dos exemplos abaixo utilizam números como entrada ao invés de campos para visualizar melhor o uso de cada função.
Sintaxe | Descrição | Exemplo |
---|---|---|
ABS(number) | Retorna o valor absoluto. |
|
AVG(number) | Retorna o valor médio. |
|
CEILING(number) | Arredonda um número acima do mais próximo do múltiplo de 1. |
|
COS(number) | O co-seno trigonométrico do ângulo especificado, em radianos. A seguinte fórmula pode ser utilizada para converter graus para radianos:
|
|
FLOOR(number) | Arredonda um número abaixo do mais próximo do múltiplo de 1. |
|
LN(number) | O logaritmo natural da expressão flutuante especificada. O logaritmo natural utiliza a constante e como o valor de base (aproximadamente 2.72) |
|
LOG(number) | O logaritmo de um número para uma base específica. O padrão é base 10. |
|
MAX(number) ou MAX(date) | Retorna o valor máximo. |
|
MIN(number) ou MIN(date) | Retorna o valor mínimo. |
|
PERCENTTOTAL(number) | Calcula a porcentagem de cada valor de campo usando o total do campo. |
|
POWER(number, power) | O valor da expressão elevado à potência especificada. |
|
ROUND(number, num_digits) | Arredonda os valores numéricos para o número de dígitos especificados.
|
|
SIN(number) | O seno trigonométrico do ângulo especificado, em radianos. A seguinte fórmula pode ser utilizada para converter graus para radianos:
|
|
STDEV(number) | O desvio padrão de um campo de número. |
|
SUM(number) | Retorna o valor total. |
|
TAN(number) | Retorna a tangente da expressão de entrada. A seguinte fórmula pode ser utilizada para converter graus para radianos:
|
|
Funções de data
As funções de data podem utilizar campos de data, texto ou nenhuma entrada, dependendo de qual função estiver sendo utilizada. A função DATEVALUE() pode ser utilizada para substituir um campo de data na função DATEDIF() ou TIMEDIF().
Anotação:
Os campos de data/hora utilizados no DATEDIF() e DATEADD() devem estar em um formato que inclua uma data (em outras palavras, data e hora ou somente data). Os campos somente hora, data/hora não serão aceitos.
Os campos de data/hora utilizados no TIMEDIF() devem estar em um formato que inclua uma hora (em outras palavras, data e hora ou somente hora). Campos de data somente, campos data/hora não serão aceitos.
Os seguintes separadores de data são suportados: ponto (.), hífen (-) e barra (/).
Sintaxe | Descrição | Exemplo |
---|---|---|
DATE(year, month, day, [hour, minute, second], [AM/PM]) | Cria um campo data/tempo utilizando três campos ou mais, ou valores. As especificações seguintes são aceitas:
Anotação:Todos os campos de entrada podem ser de números ou strings, exceto o parâmetro AM/PM. Os números devem ser valores inteiro. Os anos de dois dígitos devem ser strings. Se você estiver utilizando a função DATE() com um conjunto de dados do banco de dados e você especificou quaisquer parâmetros de tempo (hour, minute ou second), você deverá inserir um valor de entrada para todos os parâmetros de tempo. | Um conjunto de dados de restaurantes inclui campos de string com a data e o tempo das inspeções de saúde mais recentes. Um campo de data das inspeções pode ser criado utilizando a função DATE():
Anotação:As datas de resultado neste exemplo será formatado utilizando uma relógio de 24 horas. Para utilizar um relógio de 12 horas, você deve especificar AM ou PM. A mesma função de exemplo pode ser escrita como DATE(2016, Month, Day, Hour, Min, 00, "AM"). |
TIME(hour, minute, second) | Cria um campo data/hora utilizando três campos ou valores separados. As especificações seguintes são aceitas:
Anotação:Todos os campos de entrada podem ser de números ou strings, exceto o parâmetro AM/PM. Os números devem ser valores inteiro. | Um conjunto de dados de registros do hospital inclui a hora de chegada dos pacientes. Um campo de hora dos registros pode ser criado utilizando a função TIME():
Anotação:Os tempos de resultado neste exemplo serão formatados utilizando um relógio de 24 horas. Para utilizar um relógio de 12 horas, você deve especificar AM ou PM. A mesma função de exemplo pode ser escrita como TIME(Hour, Min, 00, "AM"). |
DATEADD(date, integer, [unit]) | Adiciona uma quantidade de hora especificada às datas no campo de entrada.
Se nenhuma unidade for fornecida, "D" será utilizado. Quando meses forem adicionados a um campo de data/hora, a saída será o mesmo dia do mês, independentemente do número de dias no mês. Se o dia do mês correspondente não for válido no novo mês, será utilizado o último dia do mês. Por exemplo, se um cálculo adicionar três meses ao campo de entrada e uma das datas originais for 30 de Novembro de 2021, o valor de saída de 30 de Fevereiro de 2022 não será válido. O resultado será registrado em 28 de Fevereiro de 2022, já que 2022 não é um ano bissexto. | Uma unidade de saúde pública é responsável por manter os registros de vacinas para os pacientes dentro do distrito de saúde. Uma vacina específica tem duas doses que devem ser tomadas com intervalo mínimo de 60 dias e intervalo máximo de 180 dias. DATEADD() pode ser usado para criar campos com a primeira data que os pacientes são elegíveis para a segunda dose e o prazo para a dose final. Data de elegibilidade:
Data final:
|
TIMEADD(time, integer, unit) | Adiciona uma quantidade de hora especificada às horas no campo de entrada.
| Um conjunto de dados tem datas e horas registradas em hora universal coordenada (UTC) e precisa ser convertida para hora padrão central (CST). Um campo de data/hora com horas em CST pode ser criado usando a função TIMEADD():
|
DATEDIF(start_date, end_date, [unit]) | Calcula o tempo decorrido entre duas datas. O start_date deve acontecer antes do end_date, caso contrário, a saída será um valor negativo.
Se nenhuma unidade for fornecida, "D" será utilizado. O arredondamento é realizado nos resultados de cada unidade da seguinte forma:
| Um conjunto de dados de restaurantes incluem as datas de suas inspeções de saúde mais recentes. O número de dias decorridos entre inspeções de saúde podem ser calculados utilizando a função DATEDIF(): Exemplo 1:
Exemplo 2:
Exemplo 3:
|
TIMEDIF(start_time, end_time, [unit]) | Calcula o tempo decorrido entre dois valores de datas/hora. O start_time deve acontecer antes do end_time, caso contrário, a saída será um valor negativo.
Se nenhuma unidade for fornecida, "ss" será utilizado. O arredondamento é realizado nos resultados de cada unidade da seguinte forma:
| Um conjunto de dados de registros de operação do hospital incluem o tempo inicial e final de cirurgias. O tempo que cada paciente gasta em cirurgia pode ser calculado utilizando a função TIMEDIF() :
|
DATEVALUE(date_text, [format]) | Converte texto para uma data.
Anotação:Funções agrupadas dentro da função DATEVALUE() podem ter resultados de saída inesperados se um format não for fornecido. Portanto, é recomendado que você especifique um format ao agrupar funções dentro do DATEVALUE(). Datas especificadas sem separadores (por exemplo, "10312016") serão tratadas como milissegundos se nenhum format for fornecido. Portanto, é recomendado que você especifique um formato ao inserir datas sem separadores. Para datas especificadas com separadores mas sem um format, o formato será uma suposição. Se o formato não pode ser solucionado, o padrão "MM-DD-YY" será aplicado. A função DATEVALUE() pode somente ler texto inseridos dentro de aspas ou campos de string. Um campo de data/hora não pode ser utilizado como entrada para a função DATEVALUE(). | Um conjunto de dados de restaurantes incluem as datas de suas inspeções de saúde mais recentes. O número de dias decorrido desde a última inspeção pode ser calculado utilizando a função DATEVALUE() para especificar a data atual:
As datas e tempos podem ser formatados em diversos modos. Os exemplos seguintes são alguns dos modos que você pode formatar texto em datas:
|
NOW() | Retorna a data e o tempo atual no formato data/tempo. O tempo é registrado baseado no tempo universal coordenado (UTC). | Um conjunto de dados de restaurantes incluem as datas de suas inspeções de saúde mais recentes. O número de dias decorrido desde a última inspeção pode ser calculado utilizando a função NOW() para especificar a data atual:
|
Funções lógicas
As funções lógicas utilizam entradas de string ou de números para produzir saídas de string ou de números. As entradas podem ser literais (texto cercado por aspas ou números constantes) ou valores de campo. A tabela seguinte utiliza uma combinação de valores de campo e literais para seus exemplos, junto com valores de exemplo que pode ser localizado no campos fornecido.
Sintaxe | Descrição | Exemplo |
---|---|---|
AND(condition,condition, ...) | Testa duas ou mais condições e retorna TRUE se todas as condições forem atendidas. AND() deve ser utilizado dentro do parâmetro condition da função IF().
| Um conjunto de dados contém a idade média de pessoas que vivem dentro de cada grupo de quarteirão. Um pesquisador de mercado deseja saber quais grupos de quarteirões contém mais millennials. Os grupos de quarteirões com uma idade média dentro da faixa de idade de millennials pode ser localizado utilizando uma combinação das funções IF() e AND():
|
IF(condition, TRUE_expression, [FALSE_expression]) | Testa uma condição e retorna um valor TRUE ou FALSE baseado no resultado.
TRUE_expression e FALSE_expression podem ser qualquer expressão válida, incluindo uma função IF(). O tipo de dados da TRUE_expression e FALSE_expression deve ser do mesmo tipo (por exemplo, ambos de strings ou ambos de números). | Um conjunto de dados contém campos com renda e despesas de lojas, que podem ser utilizados para localizar o status das lojas (se elas postaram um lucro líquido ou uma perda líquida). O status de cada loja pode ser localizado utilizando a função IF():
|
ISNULL(field)* | Testa se os valores em um campo são nulos. Um valor de saída de 0 é atribuído quando o valor testado não é nulo e um valor de saída de 1 é atribuído quando o valor testado é nulo.
ISNULL() pode ser usado sozinho ou dentro do parâmetro condition da função IF(). | Um conjunto de dados contém locais de colisões de tráfego envolvendo ciclistas, bem como o tipo de rota de bicicleta presente na rua onde a colisão ocorreu. Para colisões que ocorreram em uma rua sem rota de bicicleta, o campo RouteType foi deixado em branco. O conjunto de dados pode ser atualizado para preencher valores nulos usando uma combinação das funções IF() e ISNULL():
|
ISNOTNULL(field)* | Testa se os valores em um campo não são nulos. Um valor de saída 0 é atribuído quando o valor testado é nulo e um valor de saída 1 é atribuído quando o valor testado não é nulo.
ISNOTNULL() pode ser usado sozinho ou dentro do parâmetro condition da função IF(). | Um conjunto de dados contém locais de colisões de tráfego envolvendo ciclistas, bem como o tipo de rota de bicicleta presente na rua onde a colisão ocorreu. Para colisões que ocorreram em uma rua sem rota de bicicleta, o campo RouteType foi deixado em branco. O conjunto de dados pode ser atualizado para preencher valores nulos usando uma combinação das funções IF() e ISNOTNULL():
|
OR(condition,condition, ...) | Testa duas ou mais condições e retorna TRUE se pelo menos uma condição for atendida. OR() deve ser utilizado dentro do parâmetro condition da função IF().
| Um conjunto de dados contém localizações de crimes de uma cidade. Um analista de crime deseja analisar o padrão de furto comparado a outros crimes semelhantes. Para comparar furto com outros crimes, o analista deve primeiro determinar se cada crime foi considerado furto ou não. O tipo de crime pode ser determinado utilizando uma combinação das funções IF() e OR():
|
*Alguns campos sem dados podem ser configurados como vazios, em vez de nulos. Nestes casos, ISNULL() e ISNOTNULL() não retornarão os resultados esperados. Ao contrário, as expressões field="" e field<>"" deverão ser usadas no lugar de ISNULL(field) e ISNOTNULL(field), respectivamente.