¿Asignando salida de nombre de columna (x) a una matriz?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Como parte de un script más largo, me gustaría extraer los nombres de columna de una tabla y listarlos en una nueva tabla en una nueva columna.
He probado ingenuamente lo siguiente:
dt = Tabla de datos actuales ();
m = [];
Para (i = 8, i <= N Col (dt), i ++,
m = m || Nombre de la columna (i);
);
Nueva tabla ("Tabla", Nueva columna ("Cabeceras", carácter, valores establecidos (m)));
Aparece un mensaje de error "Concatenar para cadenas o solo matrices", lo cual tiene sentido ya que estoy tratando de pegar un nombre en una matriz.
¿Cuál es la sintaxis y / o función adecuada para hacer que esto funcione?
Gracias.
Re: ¿Asignar salida de nombre de columna (x) a una matriz?Utilizar una Lista en lugar de un Matriz , y luego use el Insertar en() función.
dt = Current Data Table ();m = {};For(i=8,i<= N Col (dt),i++,insert into(m, Column Name ( i )););New Table ("Table", New Column ("Headers", character,set values(m)));El bucle For () puede ser ineficiente para tablas de datos grandes. En ese caso una modificación de Txnelson La solución puede ser mejor. Esta versión indexa la lista devuelta por Obtener nombres de columna para usar los elementos desde 8 hasta el final.
Names Default to Here(1);dt = Current Data Table();dt2 = New Table( "Table", New Column( "Headers", character, values( (dt << get column names)[8 :: N Items( dt << get column names )] ) ));
Re: ¿Asignar salida de nombre de columna (x) a una matriz?Hola Jim,
Gracias por tu elegante sugerencia.
Mientras su script captura todos los nombres de columnas de un archivo, me gustaría poder omitir las primeras 8 columnas para capturar solo los nombres de las columnas en las que estoy calculando algunas estadísticas.
Gracias por tu ayuda.
Sinceramente,
Thierry
Re: ¿Asignar salida de nombre de columna (x) a una matriz?Creo que esto lo hace un poco más simple.
Nombres predeterminados aquí (1);
dt = Tabla de datos actuales ();
dt2 = Nueva tabla ("Tabla", Nueva columna ("Encabezados", caracteres, valores (dt << obtener nombres de columna)));