Está enviando el mensaje de resumen a una tabla. Todo entre paréntesis es un argumento para el mensaje de resumen, por ejemplo, grupo, rango.
No puede simplemente agregar una nueva columna: este no es un parámetro válido para el mensaje de resumen. Sin embargo, es un mensaje que puede enviar a una tabla. Cree la tabla de resumen primero y luego envíe el nuevo mensaje de columna a eso:
dtSumm = DataTable("data") << Summary( . . . );
dtSumm << NewColumn( . . .);Data Table( "Data" ) << Summary(
Group( :Row, :Col ),
Range( :Data Trace ),
New Column("ABC",formula(:Range(Data Trace)*1E15)),
Freq( "None" ),
Weight( "None" )
);
Estoy tratando de crear una nueva columna como se muestra arriba por la cual multiplico la columna en la línea por encima de 1E15. La tabla se crea pero la nueva columna "ABC" no aparece. Tal vez hay algo mal con mi sintaxis. Cualquier idea más bienvenida. Gracias Mark
Hola David, gracias por tu respuesta. Como principiante, no estoy tan familiarizado con la sintaxis. He copiado todo el script a continuación. Le permite elegir una cantidad de archivos, crear una tabla para cada uno, luego concatenar los datos en una sola tabla y luego crear una tabla de resumen y, a partir de ahí, un gráfico de mapa de calor. En la tabla de resumen "Rango" es el color por variable en el mapa de calor. Sin embargo, me gustaría multiplicar los valores por 1E15 y también poder poner un título en el gráfico. No estoy seguro de cómo hacer esto, pero parece que solo debería tomar una línea o dos o agregar * 1E15 delante de algo. Es frustrante ya que lo que quiero hacer es muy fácil, pero no ser un programador parece muy difícil (supongo que me cuesta mucho el lenguaje / sintaxis)
names = Pick File(
"Select Data File",
"$DESKTOP",
{"Text Files|txt;csv", "All Files|*"},
1,
0,
"Data",
multiple
);
nitems = N Items(names);
path = substr(names[1],2,Contains(names[1],"/",-1)-1);
For(i=1, i <= nitems, i++, names[i] = substr(words(names[i],"/"),7));
names = Files In Directory(path);
Data = New Table("Data", Character, Nominal);
col = New Column( "DC Bias Volt", Numeric, "Continuous", Format( "Best", 12 ) );
col = New Column( "Data Trace", Numeric, "Continuous", Format( "Best", 12 ) );
col = New Column( "File" );
col = New Column( "Row" );
col = New Column( "Col" );
For(i=1, i <= nitems, i++,
dt = Open(Concat(path, names[i]),
columns(
New Column( "DC Bias Volt", Numeric, "Continuous", Format( "Best", 12 ) ),
New Column( "Data Trace", Numeric, "Continuous", Format( "Best", 12 ) ),
New Column( "Memory Trace", Numeric, "Continuous", Format( "Best", 12 ) )
),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Tab, CSV( 0 ) ),
Strip Quotes( 1 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 6 ),
Data Starts( 7 ),
Lines To Read( 101 ),
Year Rule( "20xx" )
)
);
Metadata = Words(names[i], "_");
Die_Row = Substr( Metadata[6], 2, 2 );
Die_Col = Substr( Metadata[6], 5, 2 );
dt << New Column( "File", Numeric, Nominal );
dt << New Column( "Row", Character, Nominal );
dt << New Column( "Col", Character, Nominal );
:File << Set Each Value( i );
:Row << Set Each Value( Die_Row );
:Col << Set Each Value( Die_Col );
If(Metadata[1] == "CSV",
Data << Concatenate( dt, "Append to First Table" ));
Close(dt,NoSave);
);
Data Table( "Data" ) << Summary(
Group( :Row, :Col ),
Range( :Data Trace ),
Freq( "None" ),
Weight( "None" )
);
Graph Builder(
Size( 1112, 704 ),
Variables( X( :Col ), Y( :Col ), Color( :Name( "Range(Data Trace)" ) ) ),
Elements( Heatmap( X, Y, Legend( 5 ) ) ),
SendToReport(
Dispatch(
{},
"Col",
ScaleBox,
{Min( 0 ), Max( 60 ), Inc( 1 ), Minor Ticks( 0 )}
),
Dispatch(
{},
"Col",
ScaleBox( 2 ),
{Min( 0 ), Max( 60 ), Inc( 1 ), Minor Ticks( 0 )}
)
)
);