?> alterTable - WeAreCAS
table

alterTable

Descripción

La acción `alterTable` del conjunto de acciones `table` en SAS Viya permite modificar los metadatos de una tabla en memoria de CAS. Es una herramienta fundamental para la gestión de datos, ya que permite renombrar tablas, cambiar etiquetas y formatos de columnas, eliminar columnas y reordenarlas sin necesidad de recrear la tabla. Esto es especialmente útil para limpiar y preparar datos antes del análisis.

table.alterTable { caslib="string", columnOrder={"variable-name-1" <, "variable-name-2", ...>}, columns={{...}} <, {...}>, drop={"variable-name-1" <, "variable-name-2", ...>}, keep={"variable-name-1" <, "variable-name-2", ...>}, label="string", lifetime=64-bit-integer, name="table-name", rename="string", tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE" };
Parámetros
ParámetroDescripción
caslibEspecifica la caslib de la tabla de entrada que se desea utilizar con la acción. Por defecto, se utiliza la caslib activa.
columnOrderEspecifica el nuevo orden de las columnas en los metadatos de la tabla.
columnsEspecifica una lista de diccionarios, donde cada uno detalla las modificaciones para una columna específica (eliminar, renombrar, cambiar formato o etiqueta).
dropEspecifica una lista de columnas a eliminar de la tabla.
keepEspecifica una lista de columnas a mantener en la tabla, eliminando todas las demás.
labelAsigna una nueva etiqueta descriptiva a la tabla.
lifetimeEspecifica el número de segundos que la tabla se mantendrá en memoria después de su último acceso. La tabla se elimina si no se accede a ella durante el número de segundos especificado.
nameEspecifica el nombre de la tabla en memoria que se va a modificar.
renameEspecifica un nuevo nombre para la tabla en memoria.
tableRedistUpPolicyEspecifica la política de redistribución de la tabla cuando el número de nodos trabajadores aumenta en un servidor CAS en ejecución.
Preparación de datos
Creación de Datos de Ejemplo

Este código crea una tabla en memoria llamada 'MI_TABLA' en la caslib 'CASUSER'. Esta tabla contiene información sobre productos, incluyendo su ID, nombre, precio y stock. Se utilizará como base para los siguientes ejemplos de la acción `alterTable`.

1PROC CAS;
2 datastep.runCode{
3 code='data CASUSER.MI_TABLA;
4 length ID_Producto $ 10 Nombre_Producto $ 50;
5 label ID_Producto="ID del Producto"
6 Nombre_Producto="Nombre del Producto"
7 Precio="Precio Unitario"
8 Stock="Cantidad en Stock";
9 format Precio dollar8.2;
10 infile datalines delimiter=",";
11 input ID_Producto $ Nombre_Producto $ Precio Stock;
12 datalines;
13 PROD001,Laptop,1200.50,50
14 PROD002,Smartphone,800.75,150
15 PROD003,Tablet,450.00,200
16 PROD004,Monitor,300.25,80
17 ;
18 run;'
19 };
20QUIT;

Ejemplos

Este ejemplo cambia el nombre de la tabla en memoria 'MI_TABLA' a 'PRODUCTOS'.

Código SAS® / CAS
¡Copiado!
1PROC CAS; TABLE.alterTable{caslib='CASUSER', name='MI_TABLA', rename='PRODUCTOS'}; RUN; QUIT;
Resultado :
La tabla 'MI_TABLA' ahora se llama 'PRODUCTOS' en la caslib 'CASUSER'.

Este ejemplo añade una etiqueta descriptiva a la tabla 'MI_TABLA'.

Código SAS® / CAS
¡Copiado!
1PROC CAS; TABLE.alterTable{caslib='CASUSER', name='MI_TABLA', label='Inventario de Productos Electrónicos'}; RUN; QUIT;
Resultado :
La tabla 'MI_TABLA' ahora tiene la etiqueta 'Inventario de Productos Electrónicos'.

Este ejemplo elimina la columna 'Stock' de la tabla 'MI_TABLA'.

Código SAS® / CAS
¡Copiado!
1PROC CAS; TABLE.alterTable{caslib='CASUSER', name='MI_TABLA', drop={'Stock'}}; RUN; QUIT;
Resultado :
La columna 'Stock' es eliminada de la tabla 'MI_TABLA'.

Este ejemplo realiza varias modificaciones en una sola llamada: renombra la columna 'ID_Producto' a 'SKU', cambia el formato de la columna 'Precio' y añade una nueva etiqueta a la columna 'Stock'.

Código SAS® / CAS
¡Copiado!
1PROC CAS; TABLE.alterTable{caslib='CASUSER', name='MI_TABLA', columns={{name='ID_Producto', rename='SKU'}, {name='Precio', FORMAT='EURO10.2'}, {name='Stock', label='Unidades Disponibles'}}}; RUN; QUIT;
Resultado :
La columna 'ID_Producto' se renombra a 'SKU', el formato de 'Precio' cambia a 'EURO10.2' y la etiqueta de 'Stock' se actualiza a 'Unidades Disponibles'.

Este ejemplo elimina la columna 'Stock' y luego reordena las columnas restantes para que 'Precio' aparezca primero, seguido de 'ID_Producto' y 'Nombre_Producto'.

Código SAS® / CAS
¡Copiado!
1PROC CAS; TABLE.alterTable{caslib='CASUSER', name='MI_TABLA', keep={'ID_Producto', 'Nombre_Producto', 'Precio'}, columnOrder={'Precio', 'ID_Producto', 'Nombre_Producto'}}; RUN; QUIT;
Resultado :
La tabla resultante solo contiene las columnas 'Precio', 'ID_Producto' y 'Nombre_Producto', en ese orden específico.

Este ejemplo cambia el tipo de dato de la columna 'ID_Producto' de su tipo original a VARCHAR. Esto puede ser útil para optimizar el almacenamiento o para la compatibilidad con ciertas operaciones de cadena.

Código SAS® / CAS
¡Copiado!
1PROC CAS; TABLE.alterTable{caslib='CASUSER', name='MI_TABLA', columns={{name='ID_Producto', newType='VARCHAR'}}}; RUN; QUIT;
Resultado :
El tipo de dato de la columna 'ID_Producto' se convierte a VARCHAR.

Este ejemplo combina el renombrado de la tabla a 'INVENTARIO_ACTUAL' con la modificación de columnas: elimina la columna 'Stock' y renombra 'Nombre_Producto' a 'Descripcion_Producto'.

Código SAS® / CAS
¡Copiado!
1PROC CAS; TABLE.alterTable{caslib='CASUSER', name='MI_TABLA', rename='INVENTARIO_ACTUAL', columns={{name='Nombre_Producto', rename='Descripcion_Producto'}}, drop={'Stock'}}; RUN; QUIT;
Resultado :
La tabla se renombra a 'INVENTARIO_ACTUAL', la columna 'Nombre_Producto' se renombra a 'Descripcion_Producto' y la columna 'Stock' se elimina.

FAQ

¿Cuál es el propósito de la acción `alterTable` en el conjunto de acciones `table`?
¿Cómo puedo renombrar una tabla usando `alterTable`?
¿Es posible cambiar la etiqueta de una tabla?
¿Cómo puedo eliminar columnas de una tabla?
¿Cuál es la diferencia entre los parámetros `drop` y `keep`?
¿Cómo puedo modificar las propiedades de una columna, como su formato o etiqueta?
¿Qué hace el parámetro `columnOrder`?
¿Para qué sirve el parámetro `lifetime`?
¿Qué controla el parámetro `tableRedistUpPolicy`?