Cómo cambiar una variable flotante en Stata

En Stata, cambiar una variable flotante puede significar varias cosas: modificar sus valores, convertirla a otro tipo de almacenamiento, corregir un cálculo, transformar una variable numérica almacenada como texto o aumentar la precisión de los resultados. Para cada situación existen comandos específicos, pero los principales comandos para crear y modificar variables son generate y replace.

Stata almacena los datos numéricos utilizando distintos tipos de almacenamiento. Entre ellos se encuentran byte, int, long, float y double. El tipo float es habitual porque ocupa menos espacio que double, pero no siempre es adecuado cuando los valores deben conservarse con exactitud o cuando se realizan cálculos intermedios.

Qué es una variable float en Stata

Stata trabaja internamente con números binarios y almacena los datos como float por defecto. Stata realiza todos los cálculos en precisión double. El tipo de almacenamiento de una variable puede cambiarse mediante el comando recast.

Los tipos enteros de Stata son byte, int y long. Los tipos float y double representan números reales y tienen rangos más amplios que los tipos enteros.

TipoUso general
byteValores enteros pequeños
intValores enteros de tamaño intermedio
longValores enteros grandes
floatNúmeros reales con precisión simple
doubleNúmeros reales con mayor precisión

Irónicamente, cuanto más espacio requiere una variable, menos precisa puede ser su representación en algunos tipos de almacenamiento. Por ejemplo, un valor de 6.4 puede representarse internamente como 6.40000001 o 6.39999999 si la variable está definida como float.

Tipos de almacenamiento numérico en Stata

Modificar los valores de una variable float con replace

El comando replace cambia los valores de una variable existente. Su estructura básica es:

replace variable = expression

En esta estructura, variable es el nombre de la variable que se quiere modificar y expression es la expresión matemática cuyo resultado se almacenará en ella.

Por ejemplo, para multiplicar la variable price por cinco:

replace price = price*5

La expresión puede ser tan sencilla como un número o incluir funciones matemáticas y condiciones complejas. Las funciones disponibles pueden consultarse escribiendo help functions.

Internamente, Stata ejecutó un bucle: calculó price*5 para la primera observación y almacenó el resultado en price2024 para la primera observación, después calculó price*5 para la segunda observación y almacenó el resultado en price2024 para la segunda observación, y así sucesivamente para todas las observaciones del conjunto de datos.

Si en algún punto una expresión depende de un valor perdido, el resultado será perdido.

Corregir una variable creada con un factor incorrecto

Los precios del conjunto de datos auto están expresados en dólares de 1978, por lo que puede ser útil convertirlos a dólares de enero de 2024. Para hacerlo, es necesario multiplicar los precios por un factor de conversión que corresponde al Índice de Precios al Consumidor de enero de 2024 dividido por el Índice de Precios al Consumidor de 1978, aproximadamente 5.

Una forma de crear una nueva variable es:

generate price2024 = price*5

Si después se decide utilizar 4.93 como factor de conversión, puede parecer conveniente añadir código para “corregir” la variable price2024, por ejemplo, multiplicándola por 4.93/5, pero es más sencillo y limpio corregir el código que la creó originalmente.

Si se intenta ejecutar de nuevo solamente esta línea, Stata mostrará un error porque price2024 ya existe. En ese caso, puede eliminarse primero la variable y volver a crearla:

drop price2024

generate price2024 = price*4.93

También puede modificarse directamente la variable existente:

replace price2024 = price*4.93

La elección depende de si se desea conservar el código original como una nueva creación o simplemente actualizar los valores de una variable ya existente.

Crear una nueva variable float con generate

El comando generate, normalmente abreviado como gen, crea nuevas variables. Su estructura básica es:

generate variable = expression

Por ejemplo:

generate price2024 = price*5

El comando gen crea una variable nueva; replace cambia los valores de una variable existente.

Stata crea las nuevas variables numéricas como float por defecto, salvo que se haya definido otro tipo de almacenamiento. Para crear directamente una variable double, puede especificarse el tipo:

generate double price2024 = price*4.93

También puede establecerse que las nuevas variables se creen como double mediante:

set type double

Después de ejecutar ese comando, Stata utilizará por defecto el tipo double para crear nuevas variables, al menos durante el resto de la sesión.

La solución de doble precisión puede duplicar o aumentar el tamaño del conjunto de datos, por lo que no se recomienda utilizarla automáticamente si el conjunto de datos es grande y la memoria es limitada.

Cambiar el tipo float a double con recast

Si la variable ya existe y se desea cambiar su tipo de almacenamiento, puede utilizarse recast.

recast double price2024

Este comando transforma price2024 de float a double.

Para cambiar una variable numérica a otro tipo numérico, se utiliza recast. Las variables de texto también pueden cambiarse a otro tipo de texto.

Sin embargo, convertir una variable float existente a double no siempre recupera la precisión original. Si el valor ya fue redondeado al almacenarse como float, recast double solamente almacenará en double el valor float que ya estaba disponible.

Por eso, cuando sea importante conservar toda la precisión posible, es mejor crear la variable directamente como double en el momento de importar los datos o realizar el cálculo original.

Usar compress para cambiar automáticamente el tipo

Si el conjunto de datos ya está cargado en la memoria, existe una forma sencilla de intentar reducir su tamaño:

compress

Stata comprobará si hay variables que pueden utilizar menos espacio que el proporcionado por su tipo de almacenamiento y cambiará el tipo cuando sea posible.

Si los datos enteros se leyeron como float y se encuentran dentro del rango permitido, se recomienda cambiar la variable a un tipo entero. Esto puede hacerse simplemente escribiendo:

compress

Durante la entrada, importación, copia o creación de datos, la responsabilidad de elegir tipos de almacenamiento apropiados corresponde al usuario. Si no se está seguro del tipo que debe especificarse para variables enteras, se recomienda especificar double. Después de leer los datos, puede utilizarse compress para reducir el tipo de almacenamiento cuando sea seguro hacerlo.

Promoción automática de tipos enteros

Para los tipos enteros byte, int y long, los números fuera de los rangos correspondientes se almacenarían como valores perdidos, excepto porque Stata promueve automáticamente los tipos de almacenamiento cuando es necesario.

Stata promueve los tipos byte a int, int a long y long a double.

Esta promoción automática se aplica después de que los datos han sido introducidos, leídos, importados o copiados en Stata. Al leer, importar, copiar o crear los datos, el usuario debe elegir tipos de almacenamiento apropiados.

Por qué una variable float puede mostrar pequeñas diferencias

Stata utiliza el sistema binario. Números habituales como 0.1, 0.2 y 100.21 no tienen una representación binaria exacta utilizando un número finito de dígitos binarios.

Si se crea una variable float que contiene 1.1 y se muestra, Stata imprimirá 1.1, pero esto ocurre porque el formato de visualización predeterminado de Stata es %9.0g.

El número decimal 1.1 en binario es 1.000110011001… en base 2. La secuencia 1001 del final se repite indefinidamente.

En precisión float, los números tienen 24 dígitos binarios. En precisión double, la parte significativa se registra con 52 dígitos binarios.

Por este motivo, un valor que se muestra como 1.1 puede estar almacenado internamente como una aproximación, por ejemplo 1.1000000238419.

El problema de comparar directamente con ==

Una aproximación aceptable a 1.1, como 1.1000000238419, puede causar problemas si se intenta seleccionar observaciones utilizando:

list if x==1.1

Esto puede fallar si x es una variable float, porque el 1.1 situado a la derecha se interpreta como un número double y no necesariamente coincide con la aproximación float almacenada en x.

Si se crea una variable con:

generate x = 1.1

Stata actúa como si se hubiera escrito:

generate x = float(1.1)

La función float() redondea los resultados a precisión float.

Una alternativa es almacenar los datos como double:

generate double x = 1.1

También puede utilizarse una tolerancia en lugar de una igualdad exacta:

list if abs(x-1.1)<1e-8

La tolerancia debe elegirse teniendo en cuenta la escala y la precisión esperada de los datos.

Precisión float y precisión double

La precisión double es 536,870,912 veces mayor que la precisión float.

La precisión float puede ser suficiente para almacenar la mayoría de los datos. La precisión de una variable debe evaluarse en relación con la precisión inherente de la medición.

Para determinar si float es suficiente, puede multiplicarse la medición por 2-24 y comparar el resultado con el error inherente de la medición. Si 2-24 multiplicado por la medición es menor que el error inherente, puede utilizarse float para almacenar los datos.

SituaciónRecomendación
Datos generales con precisión limitada por la mediciónfloat puede ser suficiente
Datos enteros grandes que deben registrarse exactamenteNo utilizar float
Datos financierosPreferir double o enteros expresados en centavos
Cálculos intermedios importantesCrear las variables como double
Datos importados como float sin necesidad de máxima precisiónUsar compress cuando sea seguro

Ejemplo con números enteros grandes

Considérese una variable float. El rango entero para los valores float es [-16,777,216, 16,777,216].

Si se intenta almacenar 16,777,221 en la variable y se comprueba posteriormente el resultado, se descubrirá que el valor almacenado en realidad fue 16,777,220.

Por eso, si se tienen datos enteros que deben registrarse con exactitud y los valores pueden ser grandes, fuera del rango ±16,777,216, no debe utilizarse float.

Los valores float no se promocionan automáticamente porque no son tipos enteros. Los valores double tampoco se promocionan porque no existe un tipo de almacenamiento numérico más preciso que double en Stata.

Ejemplos de error relativo

Una persona puede tener un ingreso de $112,293. Un valor de este tamaño puede almacenarse con precisión float para muchos análisis, siempre que la precisión requerida no sea superior a la precisión de la representación float.

El déficit de 2011 fue de $1.5 trillion. Al almacenarse como float, este importe tiene un error máximo de ±2-24*1.5e+12 = ±$89,406.97.

La distancia entre la Tierra y la Luna suele expresarse como 384,401 kilómetros. Registrada como float, la precisión es ±384,401*2-24, es decir, aproximadamente ±23 metros o ±0.023 kilómetros.

La distancia entre la Tierra y la Luna varía de 356,400 a 406,700 kilómetros, una diferencia de unos 50,300 kilómetros. En ese caso, la precisión float es más que suficiente para registrar la distancia.

Una persona que trabaja en Estados Unidos trabaja aproximadamente 40 horas por semana, es decir, cerca de 0.238 de las horas de una semana. 2-24*0.238 equivale a 1.419e-09 de una semana o 0.1 milisegundos.

Una persona superviviente de cáncer podría vivir 350 días. 2-24*350 equivale a .00002086 días, o 1.8 segundos. La hora de la muerte rara vez se registra con una precisión de ±1.8 segundos.

La velocidad de la luz se ha medido como 299,793.458 kilómetros por segundo y constituye una excepción en comparación con muchas mediciones cuya precisión es inferior.

Cuándo utilizar double en lugar de float

La precisión float puede ser adecuada para almacenar muchos datos, pero puede ser insuficiente para realizar cálculos. Stata realiza los cálculos en precisión double, por lo que normalmente no es necesario preocuparse por el tipo de almacenamiento de las variables originales.

Existe una situación en la que debe prestarse especial atención: cuando se crean variables que contienen resultados intermedios.

Los datos financieros, como ventas, libros contables y saldos, son el caso más importante. Las personas que trabajan con datos expresados en dólares y centavos, euros y céntimos o libras y peniques suelen encontrar preferible utilizar doubles.

Para evitar problemas de redondeo, es preferible almacenar los importes monetarios como centavos.

La precisión binaria float no puede almacenar exactamente 0.01, 0.02 y valores similares.

Los valores float pueden almacenar exactamente hasta 16,777,215. Los valores double pueden almacenar exactamente hasta 9,007,199,254,740,991.

Para crear una variable financiera con doble precisión puede utilizarse:

generate double saldo = importe

Si el importe está expresado en unidades monetarias y se desea convertirlo a centavos:

generate long saldo_centavos = round(importe*100)

En este caso, los valores deben encontrarse dentro del rango apropiado para el tipo entero elegido.

Cambiar una variable float mediante un cálculo

Para cambiar una variable flotante mediante una operación matemática, se utiliza replace:

replace variable = variable*factor

También pueden combinarse sumas, restas, multiplicaciones, divisiones, potencias, funciones y paréntesis.

Por ejemplo:

replace income = income/12

replace score = (score-mean_score)/sd_score

replace amount = round(amount, .01)

Las expresiones pueden incluir todas las funciones matemáticas disponibles en Stata.

Debe tenerse presente que replace puede destruir la información original. Por esa razón, replace no tiene una abreviatura, a diferencia de generate, que normalmente puede escribirse como gen.

Usar condiciones if al cambiar una variable

Si un comando gen contiene una condición if, la variable resultante seguirá existiendo para todas las observaciones. Sin embargo, recibirá un valor perdido en las observaciones donde la condición if no sea verdadera.

Si un comando replace contiene una condición if, las observaciones donde la condición no sea verdadera permanecerán sin cambios.

Por ejemplo:

generate high_price = price*1.1 if price>10000

Las observaciones en las que price>10000 no sea verdadero recibirán un valor perdido.

En cambio:

replace price = price*1.1 if foreign==1

solamente modificará los valores de price correspondientes a automóviles extranjeros; las demás observaciones quedarán sin cambios.

Las condiciones pueden incluir comparaciones como:

if price>10000

if rep78>3

if mpg<20

if country=="United States"

Stata distingue entre mayúsculas y minúsculas. Además, una expresión lógica utiliza doble signo igual para comparar valores:

if country=="United States"

Una sola igualdad se utiliza para asignar valores, mientras que una doble igualdad se utiliza para comparar.

Valores perdidos en variables float

Si una parte de la expresión de entrada es un valor perdido, gen normalmente producirá un valor perdido.

Los valores perdidos numéricos de Stata se representan mediante un punto:

.

Los valores perdidos extendidos también pueden aparecer como .a, .b y así sucesivamente.

Es importante recordar que los valores perdidos numéricos de Stata son mayores que cualquier número real cuando se utilizan en comparaciones. Por eso, una condición como:

if rep78>3

puede incluir observaciones con rep78 perdido si no se excluyen explícitamente.

Para excluir los valores perdidos puede escribirse:

if rep78>3 & rep78<.

También puede utilizarse:

if !missing(rep78) & rep78>3

Crear indicadores a partir de condiciones

Al crear variables indicadoras, puede aprovecharse el hecho de que Stata trata verdadero como uno y falso como cero, asignando la nueva variable directamente a una condición.

generate low_mpg = mpg<20

Esto crea una variable indicadora llamada low_mpg que vale uno, verdadero, para los automóviles donde mpg es menor que veinte y cero, falso, donde mpg es mayor o igual que veinte.

Los paréntesis son opcionales, pero hacen que el comando sea más fácil de leer:

generate low_mpg = (mpg<20)

Si mpg tiene un valor perdido, el código anterior le asignará cero a low_mpg, como si se supiera que el automóvil tiene buen consumo de combustible.

Para crear un indicador que identifique automóviles con buenos registros de reparación, definidos como rep78 mayor que 3, puede utilizarse:

generate good_rep = rep78>3 if rep78<.

Si se necesitan identificar automóviles que se sabe que tienen buenos registros de reparación, los automóviles con un valor perdido en rep78 deben recibir cero porque no se sabe que tengan un buen registro de reparación.

Ejemplo: recodificar una variable float

Supongamos que se desea reducir la escala de cinco puntos de rep78 a una escala de tres puntos. El primer paso consiste en definir exactamente cómo se desea hacer la transformación, porque si no resulta claro para el usuario nunca podrá explicárselo correctamente a Stata.

La primera línea crea la nueva variable rep3, pero solamente le asigna uno a los casos en los que rep78 es menor que tres. Los demás casos reciben valores perdidos.

generate rep3 = 1 if rep78<3

La segunda línea cambia algunos de esos valores perdidos a dos:

replace rep3 = 2 if rep78==3

La tercera línea cambia más valores perdidos a tres:

replace rep3 = 3 if rep78>3 & rep78<.

El valor de rep3 para las observaciones donde rep78 es perdido será perdido, como debe ser, porque nunca se le asignó otro valor.

Las cinco observaciones en las que rep78 es perdido fueron excluidas implícita o explícitamente de los tres comandos, por lo que comenzaron con un valor perdido para rep3 y nunca fueron modificadas.

Si se olvida excluir los valores perdidos del último comando, rep3 sería igual a tres para los automóviles cuyo rep78 es perdido, un error demasiado frecuente.

Combinar los valores uno y dos puede tener sentido porque hay muy pocos casos, pero no existía una necesidad particular de combinar los valores cuatro y cinco.

Recodificar con recode

El comando recode ofrece una forma alternativa de crear rep3. Está diseñado exclusivamente para tareas de recodificación y es mucho menos flexible que gen y replace, pero resulta muy fácil de utilizar.

La opción gen al final no es obligatoria. Si no se incluye, la variable original será modificada en lugar de que Stata cree una nueva variable con los valores transformados.

El núcleo de recode es una lista de reglas, cada una entre paréntesis, que indica cómo debe recodificarse una variable. Las reglas tienen la forma:

(input_value = output_value)

input_value puede ser un solo número, una lista de números separados por espacios o un intervalo especificado mediante start/end. output_value siempre será un único número.

Cualquier valor que no esté cubierto por una regla permanecerá sin cambios. Por ello, recode puede utilizarse para cambiar solamente algunos valores de una variable o para redefinirla por completo.

Una posible sintaxis es:

recode rep78 (1 2=1) (3=2) (4 5=3), gen(rep3)

También puede utilizarse un intervalo:

recode rep78 (1/2=1) (3=2) (4/5=3), gen(rep3)

Los valores perdidos deben tratarse de forma explícita cuando sea necesario, porque pueden quedar incluidos accidentalmente en condiciones que utilizan desigualdades.

Convertir una variable numérica almacenada como texto

Uno de los problemas comunes es que las variables numéricas se almacenen accidentalmente como strings. En ese caso, x es una variable de texto, no un número, y no pueden realizarse operaciones matemáticas con ella.

Puede comprobarse el tipo de una variable mediante:

describe x

Si una variable que debería ser numérica está almacenada como string, puede utilizarse destring.

destring x, replace

destring sirve para variables que contienen caracteres numéricos y no numéricos, por ejemplo porcentajes junto con el signo “%”.

Antes de convertirla, siempre debe pensarse por qué la variable era un string. La razón más habitual es que los datos fueron importados desde una hoja de cálculo y contienen valores no numéricos.

Puede obligarse a destring a ignorar el problema y convertir los valores no numéricos en valores perdidos utilizando la opción force:

destring x, replace force

Sin embargo, este procedimiento puede provocar la pérdida de información importante.

Una variable numérica puede convertirse en string con tostring:

tostring x, generate(x_string)

tostring utiliza los valores numéricos de una variable y simplemente los convierte en cadenas de texto. Un valor de 10 seguirá pareciendo 10, pero después será una cadena de texto.

Normalmente, tostring no funciona como se espera para datos float o double si se busca conservar una representación decimal específica.

El comando encode convierte una variable string en una variable con valores numéricos y etiquetas de valor. El comando decode realiza la operación inversa.

Normalmente, estos comandos requieren una opción replace o generate.

Modificar variables string

Las variables string pueden crearse y modificarse con gen y replace, igual que las variables numéricas.

Una diferencia es que los valores string deben escribirse entre comillas. Además, para una variable string el valor perdido es "", es decir, una cadena que no contiene ningún carácter.

El siguiente comando crea una variable llamada cost que Stata reconoce como string porque el valor que se almacenará está entre comillas:

generate str10 cost = "High"

Las observaciones donde la condición price>10000 no sea verdadera reciben un valor perdido, que para una variable string es "".

Después pueden modificarse esos valores perdidos:

replace cost = "Low" if price<=10000

No pueden realizarse operaciones matemáticas con strings, pero existen varias funciones útiles para trabajar con ellos.

Funciones string frecuentes

La función strpos(), dados dos strings, devuelve la posición del segundo string dentro del primero o cero si el primer string no contiene el segundo.

Esto hace que strpos() sea especialmente útil en condiciones if.

Otra función útil es word(). Dada una cadena y un número n, word devuelve la enésima palabra de la cadena.

Existen muchas más funciones string disponibles en Stata y pueden consultarse mediante el sistema de ayuda.

Usar egen cuando se necesita una función agregada

El comando egen, abreviatura de “extended generate”, proporciona acceso a otra biblioteca de funciones.

Las funciones agregadas toman varios números como entrada y devuelven un único número como salida. También funcionan entre observaciones y, por ello, no pueden realizarse fácilmente con gen, que trabaja una observación a la vez.

La diferencia principal con egen es que no se escribe una expresión matemática propia, sino que se utiliza una función de la biblioteca.

Otra diferencia importante es la forma en que se manejan los valores perdidos. Con gen, si alguna parte de la entrada está perdida, la salida será perdida. En cambio, egen simplemente ignora los valores perdidos y calcula el resultado utilizando los datos disponibles.

Las funciones egen para calcular estadísticas resumidas se combinan con mucha frecuencia con by para calcular estadísticas por grupos.

Por ejemplo, puede calcularse el precio medio por fabricante:

egen mean_price = mean(price), by(make)

Los ceros de la desviación estándar reflejan que todos los automóviles de un fabricante tienen el mismo valor para mean_price.

mean_price describe realmente a un fabricante, no a un automóvil individual.

Comprobar el tipo y los valores después del cambio

Después de modificar una variable flotante, conviene comprobar su tipo, sus valores y sus estadísticas descriptivas.

Para consultar la estructura de la variable:

describe variable

Para obtener estadísticas resumidas:

summarize variable

Para listar observaciones específicas:

list variable

También puede mostrarse una variable con un formato más preciso:

format variable %21.15f

El formato de visualización cambia la forma en que se muestran los valores, pero no modifica necesariamente los valores almacenados.

Stata dispone de un formato que muestra los números de punto flotante IEEE 754-2008 en su forma binaria completa, pero de una manera legible:

format variable %21x

El formato %21x presenta la representación interna del número. Puede utilizarse como formato de entrada y de salida.

Buenas prácticas para cambiar variables float

  • Utilizar generate para crear una variable nueva.
  • Utilizar replace para cambiar una variable existente.
  • Crear la variable como double desde el principio cuando la precisión sea importante.
  • No asumir que recast double recuperará información que ya se perdió al almacenar los datos como float.
  • Utilizar compress después de importar los datos para reducir el almacenamiento cuando sea seguro.
  • Excluir explícitamente los valores perdidos en las condiciones lógicas.
  • Evitar comparar valores float con igualdad exacta cuando existan problemas de redondeo.
  • Usar una tolerancia para comparar números aproximados.
  • Guardar los datos monetarios como enteros expresados en centavos cuando se necesite exactitud.
  • Verificar siempre el tipo de variable con describe.
  • Comprobar los resultados con summarize y list.
  • Conservar una copia de los datos originales antes de ejecutar comandos destructivos.

Ejemplo completo de transformación segura

El siguiente flujo crea una variable nueva con doble precisión, evita incluir valores perdidos y comprueba el resultado:

describe price

generate double price2024 = price*4.93 if price<.

summarize price price2024

list price price2024 in 1/10

Si price2024 ya existe y debe actualizarse:

replace price2024 = price*4.93 if price<.

Si se quiere empezar de nuevo:

drop price2024

generate double price2024 = price*4.93 if price<.

Si la variable solamente debe cambiarse de float a double:

recast double price2024

Si el propósito es reducir el tamaño del conjunto de datos después de importar variables enteras:

compress

Guardar el trabajo y evitar errores al repetir el código

El archivo do modifica el conjunto de datos que utiliza, por lo que debe guardarse la nueva versión.

No se debe guardar la salida sobre los datos de entrada. Si se guarda el nuevo conjunto de datos como auto, el archivo do no podrá ejecutarse otra vez porque fallará al intentar crear price2024 cuando esa variable ya exista en el conjunto de datos modificado.

Para guardar los datos puede utilizarse:

save nuevo_archivo, replace

El comando replace de save permite sobrescribir un archivo existente, pero debe utilizarse con cuidado.

Es recomendable trabajar con un archivo do reproducible, guardar el conjunto de datos original sin modificar y guardar las transformaciones en un archivo separado.

Los comandos pueden escribirse en la ventana de comandos o en un editor de texto. Para ejecutar un archivo do puede utilizarse:

do nombre_archivo

El carácter * indica que una línea es un comentario y no un comando. Stata ignora los comentarios.

Los nombres de las variables deben escribirse en minúsculas cuando así se hayan definido. Stata distingue entre mayúsculas y minúsculas: lexp y LEXP son variables diferentes.

Es importante desarrollar un estilo coherente para los nombres. Los nombres compuestos pueden resultar crípticos y difíciles de leer, aunque un estilo como logGnpPc, que capitaliza cada palabra después de la primera, puede ser útil si se aplica de manera coherente.

Referencia rápida de comandos

ObjetivoComando
Crear una variablegenerate nueva = expresión
Crear una variable doublegenerate double nueva = expresión
Modificar una variable existentereplace variable = expresión
Cambiar float a doublerecast double variable
Optimizar tipos de almacenamientocompress
Convertir string numérico a númerodestring variable, replace
Convertir número a stringtostring variable, generate(nueva)
Recodificar valoresrecode variable ..., gen(nueva)
Comprobar tipo y formatodescribe variable
Revisar estadísticassummarize variable
Inspeccionar observacioneslist variable

tags: #como #cambiar #una #variable #flotante #en