Puede agregar y calcular nuevos campos para el dataset utilizando la tabla de datos o la ingeniería de datos. Los campos calculados permiten crear valores, por ejemplo, tasas de crecimiento, porcentaje de pérdida y variaciones a lo largo del tiempo, mediante la elección de campos de su dataset y la aplicación de operadores y funciones.
También puede calcular campos con Calcular % variación, Calcular ratio y Calcular puntuación z en Buscar respuestas.
Sugerencia:
Utilice la tabla de datos para agregar datos normalizados a su dataset para mapas, gráficos y tablas. Una vez que se calculan los datos y se agregan a su dataset, cambie el tipo de campo para identificarlo como un campo de índice/ratio . Para obtener más información sobre la normalización de datos, consulte Mapas de coropletas.
Calcular un campo en la tabla de datos
Los campos calculados en la tabla de datos solo aparecen en el libro de trabajo y no se agregan al dataset original. Si desea mantener el campo calculado fuera del libro de trabajo, puede crear una capa de entidades nueva compartiendo el dataset o utilizando ingeniería de datos.
Nota:
La tabla de datos proporciona una vista representativa de los datos y tiene un límite de visualización de 2000 filas. Organizar la tabla en orden ascendente y descendente permite ver las primeras 2000 filas y las últimas 2000 filas. Todos los cálculos se realizan en el dataset completo.
Realice estos pasos para calcular un campo en la tabla de datos:
- Abra un libro de trabajo y agregue datos, en caso necesario.
- En el panel de datos, haga clic en el botón Opciones de dataset junto al dataset en el que desea agregar un campo calculado.
- Haga clic en Ver tabla de datos.
- Haga clic en + Campo.
Una columna llamada Nuevo campo se incorpora a la tabla.
Nota:
Puede cambiar el tamaño y reordenar las columnas, pero estos cambios no se guardan.
- Haga clic en el encabezado de la nueva columna y proporcione y un nombre más descriptivo.
- Haga clic en fx o Introducir función de cálculo para mostrar un menú con funciones, nombres de campo y operadores para crear su fórmula.
También es posible usar comandos del teclado equivalentes para reemplazar cualquier botón del menú fx.
- Use las funciones, campos y operadores para completar sus cálculos según sea necesario.
- Haga clic en Ejecutar.
Si el botón Ejecutar no está habilitado, hay un error en la sintaxis de su cálculo.
El nuevo campo calculado aparece al final de su dataset. Puede eliminar un campo calculado seleccionándolo y haciendo clic en el botón Eliminar campo calculado .
Calcular una columna utilizando la ingeniería de datos
Nota:
La ingeniería de datos está disponible en Insights desktop. Todos los usuarios de Insights in ArcGIS Online y Insights in ArcGIS Enterprise tienen acceso a Insights desktop. Para obtener más información, consulte Descripción general de ArcGIS Insights.
La ingeniería de datos está actualmente en Vista previa.
La herramienta Calcular columna se puede agregar a un modelo de datos y utilizarse para agregar columnas al dataset de salida. Las columnas calculadas en un libro de trabajo de datos se agregarán permanentemente al dataset de salida, en lugar de hacerlo solo en el libro de trabajo.
Realice estos pasos para calcular una columna utilizando la ingeniería de datos:
- Abra un libro de trabajo de datos en Insights desktop y agregue datos, si es necesario.
- En la barra de herramientas lateral, haga clic en el botón Calcular columna.
- En el parámetro Nuevo nombre de columna, escriba el nombre de la nueva columna.
Nota:
Para los nombres de columna, las bases de datos compatibles con Insights solo admiten letras, números y caracteres de subrayado. Los caracteres no admitidos para los nombres de columna se convierten en caracteres de subrayado cuando se guardan en una base de datos (por ejemplo, population/sq mile pasa a ser population_sq_mile). Para obtener los mejores resultados, aplique un nombre de columna que utilice solo los caracteres admitidos y luego actualice el alias de la columna con otros caracteres, si es necesario.
- En el cuadro Expresión de columna, use las funciones, los nombres de columna y los operadores para completar el cálculo según sea necesario.
También es posible usar comandos del teclado equivalentes para reemplazar cualquier botón.
Nota:
Si el libro de trabajo de datos tiene más de un dataset, las opciones de entrada se basan en la tabla activa.
- Haga clic en Ejecutar.
Si el botón Ejecutar no está habilitado, hay un error en la sintaxis de su cálculo.
La nueva columna calculada se agrega a la tabla y la herramienta Calcular columna se agrega al modelo de datos.
Operadores
Es posible que calcular un campo requiera operadores lógicos y matemáticos. Estos operadores están disponibles para calcular los campos:
Operador | Utilizar |
---|---|
+ | Adición. |
- | Resta. |
× | Multiplicación. El comando de teclado equivalente es *. |
÷ | División. El comando de teclado equivalente es /. |
xy | Función Potencia. El comando de teclado equivalente es ^. |
< | Menor que. |
> | Mayor que. |
= | Igual. |
<= | Menor o igual que. |
>= | Mayor o igual que. |
<> | No igual que. |
, | Coma, usada como separador entre componentes de sintaxis en funciones. |
( | Paréntesis izquierdo. |
) | Paréntesis derecho. |
AND | Operador lógico donde se deben cumplir todas las condiciones. |
OR | Operador lógico donde se debe cumplir una de las condiciones. |
IS NULL | Operador binario que prueba si los valores de un campo son nulos. Se asigna un valor de salida de 0 cuando el valor probado no es nulo, y un valor de salida de 1 cuando el valor probado es nulo. |
IS NOT NULL | Operador binario que prueba si los valores de un campo no son nulos. Se asigna un valor de salida de 0 cuando el valor probado es nulo, y un valor de salida de 1 cuando el valor probado no es nulo. |
Nota:
Los operadores matemáticos, como +, -, > e = son compatibles con los campos numéricos y de índice/ratio. Las funciones, como CONCATENATE() y DATEDIF(), se pueden utilizar en lugar de ciertos operadores matemáticos para campos de cadena de caracteres y campos de fecha/hora, respectivamente.
Los operadores IS NULL y IS NOT NULL son compatibles con todos los tipos de campos (cadena de caracteres, número, índice/ratio y fecha/hora) excepto las ubicaciones. Algunos campos de cadena de caracteres con valores nulos se pueden configurar como cadenas de caracteres vacías. En esos casos, IS NULL y IS NOT NULL no devolverán los resultados esperados. En su lugar, se deben usar las expresiones field="" y field<>"" en lugar de field IS NULL y field IS NOT NULL, respectivamente.
Los operadores AND y OR se pueden usar para unir condiciones que tengan sintaxis distintas a las de sus funciones lógicas correspondientes. Los siguientes ejemplos muestran cálculos equivalentes utilizando las funciones y los operadores:
Nota:
Al calcular campos, AND y OR se deben utilizar dentro de la función IF().
Función | 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") |
Funciones
Se puede acceder a las funciones con el botón fx o el campo Introducir función de cálculo de la tabla de datos. Existen cuatro tipos de funciones: cadena de caracteres, numérica, fecha y lógica.
Al agregar una función a su cálculo, una ventana emergente muestra la sintaxis de la función. Puede eliminar el elemento emergente con el botón de cierre o volverlo a mostrar haciendo clic en la función del campo Introducir función de cálculo.
Funciones de cadena
La mayoría de las funciones de cadenas de caracteres utilizan entradas de cadenas de caracteres para generar salidas de cadenas de caracteres. Las dos excepciones son la función VALUE() y la función FIND(), que utilizan entradas de cadenas de caracteres para generar salidas numéricas.
El texto de entrada en funciones de cadenas de caracteres puede ser literal (texto entre comillas) o valores de campos de categorías. En la tabla siguiente se utilizan campos de categorías para los ejemplos, junto con valores de ejemplo que se podrían encontrar en esos campos. Las comillas se utilizan en los valores de los campos para indicar que los campos tienen datos de categorías.
Sintaxis | Descripción | Ejemplo |
---|---|---|
CONCATENATE(text1, [text2], ... ) | Concatena dos o más valores de cadenas de caracteres. | Un dataset de colegios de California contiene campos de direcciones de calles, ciudades y códigos postales. Se puede crear un único campo de direcciones postales utilizando la función CONCATENATE():
|
FIND(find_text, within_text, [start_num]) | Indica la posición del texto especificado (carácter o caracteres) dentro de un campo de texto o de cadena de caracteres. La función FIND() puede resultar más útil cuando se utiliza junto con otras funciones como, por ejemplo, MID(), LEFT() o RIGHT(). | Un dataset contiene un campo con direcciones de calles (incluido el número y el nombre de la calle). Para clasificar los datos por calle, el nombre de la calle se debe eliminar del resto de la dirección utilizando la función MID(). No obstante, cada número tiene una longitud diferente, por lo que el start_num será diferente para cada fila. El start_num se puede encontrar utilizando la función FIND():
|
LEFT(text, [num_chars]) | Devuelve parte de un campo de texto.
| Un dataset de accidentes de tráfico incluye un campo de categoría con el día del accidente, incluido el día de la semana, la fecha y el año. Para estudiar los accidentes por día de la semana, se puede calcular un nuevo campo para que muestre los tres primeros caracteres del campo (empezando por el día de la semana) utilizando la función LEFT():
|
LOWER(text) | Devuelve una expresión de caracteres con todos los datos convertidos a minúsculas. | Un departamento de obras públicas está recopilando una lista de señales de tráfico que hay que sustituir. A medida que se agregan entradas nuevas a la lista, el formato del campo Status ha dejado de estar estandarizado, lo que dificulta mostrar las señales con valores únicos. El campo Status se puede estandarizar para que aparezca con todas las letras en minúsculas utilizando la función LOWER():
|
MID(text, start_num, [num_chars]) | Devuelve parte de un campo de texto.
| Un dataset de colegios de California contiene campos de direcciones de calles, ciudades y códigos postales. El nombre de la calle se puede aislar de la dirección utilizando la función MID():
|
RIGHT(text, [num_chars]) | Devuelve parte de un campo de texto.
| Un dataset de parques nacionales incluye un campo con el nombre del parque y el código de estado de dos dígitos. Para simbolizar los parques por estado, se puede agregar y calcular un campo nuevo utilizando la función RIGHT():
|
SUBSTITUTE(source_text, old_text, new_text) | Reemplaza el texto antiguo de una cadena de caracteres con el nuevo texto especificado.
| Un dataset de ubicaciones de socavones contiene un campo de nombres de calles. El dataset se tiene que actualizar cuando Main Street cambia de nombre y se convierte en 5th Street. El campo street_name se puede actualizar usando la función SUBSTITUTE():
Nota:La función SUBSTITUTE() reemplazará todas las instancias de old_text con new_text. Por ejemplo, en la función SUBSTITUTE("aba", "a", "c") el texto resultante sería "cbc". |
TRIM(text) | Devuelve la cadena de caracteres con los espacios adicionales eliminados de los finales. | Un servicio de entidades contiene campos de texto con espacios adicionales al principio y al final de los valores. Los espacios adicionales se pueden eliminar utilizando la función TRIM():
|
UPPER(text) | Devuelve una expresión de caracteres con todos los datos convertidos a mayúsculas. | Un dataset con ubicaciones de sedes de organizaciones no gubernamentales contiene un campo con los nombres completos de las organizaciones y los acrónimos, si procede. Los acrónimos se pueden estandarizar para que aparezcan en mayúsculas utilizando la función UPPER():
|
VALUE(text, [format]) | Convierte el texto en un número.
Nota:Las funciones anidadas dentro de la función VALUE() pueden generar resultados inesperados si no se proporciona un format. Por consiguiente, se recomienda que especifique un format cuando utilice la función VALUE(). La función VALUE() actualmente no admite la conversión de texto a números negativos. | Un dataset de tiendas minoristas tiene un campo de categoría con importes de ingresos. El campo Revenue se puede convertir a valores numéricos utilizando la función VALUE().
|
Funciones numéricas
Las funciones numéricas utilizan entradas numéricas para generar salidas de números. Las funciones numéricas se utilizarán con más probabilidad junto con otras funciones o como un método para transformar datos.
Los números de entrada pueden ser números literales o campos numéricos. En algunos de los ejemplos que aparecen a continuación se utilizan números como entradas en lugar de campos para mostrar mejor el uso de cada función.
Sintaxis | Descripción | Ejemplo |
---|---|---|
ABS(number) | Devuelve el valor absoluto. |
|
AVG(number) | Devuelve el valor medio. |
|
CEILING(number) | Redondea un número al alza al múltiplo de 1 más cercano. |
|
COS(number) | El coseno trigonométrico del ángulo especificado, expresado en radianes. Se puede utilizar la siguiente fórmula para convertir grados en radianes:
|
|
FLOOR(number) | Redondea un número a la baja al múltiplo de 1 más cercano. |
|
LN(number) | El logaritmo natural de la expresión flotante especificada. El logaritmo natural utiliza la constante e como valor base (aproximadamente 2,72) |
|
LOG(number) | El logaritmo de un número respecto a una base específica. El valor predeterminado es la base 10. |
|
MAX(number) o MAX(date) | Devuelve el valor máximo. |
|
MIN(number) o MIN(date) | Devuelve el valor mínimo. |
|
POWER(number, power) | El valor de la expresión elevada a la potencia especificada. |
|
ROUND(number, num_digits) | Redondea valores numéricos a la cantidad de dígitos especificada.
|
|
SIN(number) | El seno trigonométrico del ángulo especificado, expresado en radianes. Se puede utilizar la siguiente fórmula para convertir grados en radianes:
|
|
STDEV(number) | La desviación estándar de un campo numérico. |
|
SUM(number) | Devuelve el valor total. |
|
TAN(number) | Devuelve la tangente de la expresión de entrada. Se puede utilizar la siguiente fórmula para convertir grados en radianes:
|
|
Funciones de fecha
Las funciones de fecha pueden utilizar entradas de campos de fecha, de texto o ninguna entrada, dependiendo de la función que se esté usando. Se puede utilizar la función DATEVALUE() para reemplazar un campo de fecha en la función DATEDIF() o TIMEDIF().
Nota:
Los campos de fecha/hora utilizados en DATEDIF() y DATEADD() deben tener un formato que incluya una fecha (en otras palabras, fecha y hora o solo fecha). No se aceptarán campos de fecha/hora solo de hora.
Los campos de fecha/hora utilizados en TIMEDIF() deben tener un formato que incluya una fecha (en otras palabras, fecha y hora o solo fecha). No se aceptarán campos de fecha/hora solo de hora.
Sintaxis | Descripción | Ejemplo |
---|---|---|
DATE(year, month, day, [hour, minute, second], [AM/PM]) | Crea un campo de fecha/hora usando tres o más campos o valores independientes. Se aceptan las siguientes especificaciones:
Nota:Todos los campos de entrada pueden ser números o cadenas de caracteres, excepto el parámetro AM/PM. Los números deben ser valores enteros. Los años de dos dígitos deben ser cadenas. Si va a usar la función DATE() con un dataset de base de datos y se han especificado parámetros de tiempo (hour, minute o second), debe introducir un valor de entrada para todos los parámetros de tiempo. | Un dataset de restaurantes incluye campos de cadena de caracteres con la fecha y la hora de las inspecciones sanitarias más recientes. Se puede crear un campo de fecha para las inspecciones utilizando la función DATE():
Nota:Las fechas resultantes de este ejemplo tendrán el formato correspondiente a un reloj de 24 horas. Para usar un reloj de 12 horas, debe especificar AM o PM. La misma función de ejemplo puede escribirse como DATE(2016, Month, Day, Hour, Min, 00, "AM"). |
TIME(hour, minute, second) | Crea un campo de fecha/hora usando tres campos o valores independientes. Se aceptan las siguientes especificaciones:
Nota:Todos los campos de entrada pueden ser números o cadenas de caracteres, excepto el parámetro AM/PM. Los números deben ser valores enteros. | Un dataset de historias clínicas incluye las horas de llegada de los pacientes. Se puede crear un campo de hora para dichos registros con la función TIME():
Nota:Las horas resultantes de este ejemplo tendrán el formato correspondiente a un reloj de 24 horas. Para usar un reloj de 12 horas, debe especificar AM o PM. La misma función de ejemplo puede escribirse como TIME(Hour, Min, 00, "AM"). |
DATEADD(date, integer, [unit]) | Agrega una cantidad específica de tiempo a las fechas en el campo de entrada.
Si no se proporciona ninguna unidad, se utilizará "D". Cuando se agregan meses a un campo de fecha/hora, la salida será el mismo día del mes, independientemente de la cantidad de días del mes. Si el día correspondiente del mes no es válido en el nuevo mes, se utiliza el último día del mes. Por ejemplo, si un cálculo agrega tres meses al campo de entrada y una de las fechas originales es el 30 de noviembre de 2021, el valor de salida del 30 de febrero de 2022 no es válido. El resultado se registrará el 28 de febrero de 2022, ya que 2022 no es año bisiesto. | Una unidad de salud pública es responsable de mantener los registros de vacunación de los pacientes en el distrito sanitario. Una vacuna específica tiene dos dosis que deben tomarse con al menos 60 días de diferencia y no más de 180 días de diferencia. DATEADD() se puede usar para crear campos con la primera fecha en que los pacientes son elegibles para su segunda dosis y la fecha límite para la dosis final. Fecha de elegibilidad:
Fecha final:
|
TIMEADD(time, integer, unit) | Agrega una cantidad específica de tiempo a las horas en el campo de entrada.
| Un dataset tiene fechas y horas registradas en horario universal coordinada (UTC) y debe convertirse al horario estándar central (CST). Se puede crear un campo de fecha/hora con horas en CST usando la función TIMEADD():
|
DATEDIF(start_date, end_date, [unit]) | Calcula el tiempo transcurrido entre dos fechas. La start_date debe ser anterior a la end_date; de lo contrario, la salida será un valor negativo.
Si no se proporciona ninguna unidad, se utilizará "D". El redondeo se realiza en los resultados de cada unidad de la siguiente manera:
| Un dataset de restaurantes incluye las fechas de las inspecciones sanitarias más recientes. El número de días transcurridos entre las inspecciones sanitarias se puede calcular utilizando la función DATEDIF(): Ejemplo 1:
Ejemplo 2:
Ejemplo 3:
|
TIMEDIF(start_time, end_time, [unit]) | Calcula el tiempo transcurrido entre dos valores de fecha/hora. La start_time debe ser anterior a la end_time; de lo contrario, la salida será un valor negativo.
Si no se proporciona ninguna unidad, se utilizará "ss". El redondeo se realiza en los resultados de cada unidad de la siguiente manera:
| Un dataset de los registros de las operaciones quirúrgicas realizadas en un hospital incluye las horas de inicio y fin de las intervenciones. El tiempo que cada paciente pasa en dichas intervenciones se puede calcular con la función TIMEDIF():
|
DATEVALUE(date_text, [format]) | Convierte texto a fecha.
Nota:Las funciones anidadas dentro de la función DATEVALUE() pueden generar resultados inesperados si no se proporciona un format. Por consiguiente, se recomienda que especifique un format cuando anide funciones dentro de DATEVALUE(). Las fechas especificadas sin separadores (por ejemplo, "10312016") se tratarán como milisegundos si no se proporciona ningún format. Por consiguiente, se recomienda que especifique un formato cuando introduzca fechas sin separadores. Para las fechas especificadas con separadores, pero sin un format, se averiguará el formato. Si no es posible averiguar el formato, se aplicará el "MM-DD-YY" predeterminado. La función DATEVALUE() solo puede leer el texto escrito entre comillas o los campos de cadena de caracteres. No se puede usar un campo de fecha/hora como entrada de la función DATEVALUE(). | Un dataset de restaurantes incluye las fechas de las inspecciones sanitarias más recientes. El número de días transcurridos desde la última inspección se puede calcular utilizando la función DATEVALUE() para especificar la fecha actual:
Las fechas y las horas pueden tener varios formatos. Los siguientes ejemplos muestran algunas de las maneras de dar al texto formato de fecha:
|
NOW() | Devuelve la fecha y hora actuales con el formato de fecha/hora. El tiempo se registra según el Tiempo universal coordinado (UTC). | Un dataset de restaurantes incluye las fechas de las inspecciones sanitarias más recientes. El número de días transcurridos desde la última inspección se puede calcular utilizando la función NOW() para especificar la fecha actual:
|
Funciones lógicas
Las funciones lógicas utilizan entradas de cadena de caracteres o numéricas para generar salidas de cadena de caracteres o números. Las entradas pueden ser literales (texto rodeado por comillas o números constantes) o valores de campo. En la tabla siguiente se utiliza una combinación de campos y valores literales para los ejemplos, junto con valores de ejemplo que se podrían encontrar en esos campos.
Sintaxis | Descripción | Ejemplo |
---|---|---|
AND(condition,condition, ...) | Prueba dos o más condiciones y devuelve TRUE si se cumplen todas las condiciones. AND() se debe usar con el parámetro condition de la función IF().
| Un dataset contiene la edad media de las personas que viven en cada grupo de bloques. Un investigador de mercado quiere saber qué grupos de bloques contienen sobre todo millennials Los grupos de bloques con una edad media contenida en el rango de edades de los millennials se pueden encontrar usando una combinación de las funciones IF() y AND():
|
IF(condition, TRUE_expression, [FALSE_expression]) | Prueba una condición y devuelve un valor TRUE o basado en FALSE el resultado.
TRUE_expression y FALSE_expression pueden ser cualquier expresión válida, incluida una función IF() anidada. El tipo de datos de TRUE_expression y FALSE_expression debe ser el mismo (por ejemplo, las dos cadenas de caracteres o los dos números). | Un dataset contiene campos con los ingresos y los gastos de unas tiendas, y esos campos se pueden usar para determinar el estado de esas tiendas (si han registrado un beneficio neto o una pérdida neta). El estado de cada tienda se puede determinar utilizando la función IF():
|
ISNULL(field)* | Comprueba si los valores de un campo son nulos. Se asigna un valor de salida de 0 cuando el valor probado no es nulo, y un valor de salida de 1 cuando el valor probado es nulo.
ISNULL() puede usarse por sí solo o dentro del parámetro condition de la función IF(). | Un dataset contiene las ubicaciones de las colisiones de tráfico en las que se han visto implicados ciclistas, así como el tipo de carril bici presente en la calle en la que se produjo la colisión. En el caso de las colisiones que tuvieron lugar en una calle sin carril bici, el campo RouteType se deja en blanco. El dataset puede actualizarse para rellenar los valores nulos mediante una combinación de las funciones IF() y ISNULL():
|
ISNOTNULL(field)* | Comprueba si los valores de un campo no son nulos. Se asigna un valor de salida de 0 cuando el valor probado es nulo, y un valor de salida de 1 cuando el valor probado no es nulo.
ISNOTNULL() puede usarse por sí solo o dentro del parámetro condition de la función IF(). | Un dataset contiene las ubicaciones de las colisiones de tráfico en las que se han visto implicados ciclistas, así como el tipo de carril bici presente en la calle en la que se produjo la colisión. En el caso de las colisiones que tuvieron lugar en una calle sin carril bici, el campo RouteType se deja en blanco. El dataset puede actualizarse para rellenar los valores nulos mediante una combinación de las funciones IF() y ISNOTNULL():
|
OR(condition,condition, ...) | Prueba dos o más condiciones y devuelve TRUE si se cumple al menos una condición. OR() se debe usar con el parámetro condition de la función IF().
| Un dataset contiene las ubicaciones de los delitos en una ciudad. Un analista especializado en delitos desea analizar el patrón de los robos en comparación con otros delitos similares. Para comparar el robo con otros delitos, el analista debe determinar primero si cada delito se ha considerado o no un robo. El tipo de delito se puede determinar usando una combinación de las funciones IF() y OR():
|
*Algunos campos sin datos pueden configurarse como vacíos, en lugar de nulos. En esos casos, ISNULL() y ISNOTNULL() no devolverán los resultados esperados. En su lugar, se deben usar las expresiones field="" y field<>"" en lugar de ISNULL(field) y ISNOTNULL(field), respectivamente.