Seleccione dónde y subconjunto según el valor de la celdaHola,
Tengo el siguiente código donde quiero que obtenga los nombres de las columnas del archivo y luego cree una nueva tabla de subconjunto y luego encuentre la media y la SD de todas las columnas numéricas. El código Media y SD funciona pero no crea la tabla de subconjunto en absoluto. ¿Algunas ideas? He comparado esto con todas las discusiones publicadas. He probado las condiciones Comienza con y Contiene.
Aquí está el archivo de muestra:
| Número de serie |
Código |
Área |
Altura |
Peso |
Edad |
| 1 |
55414 |
Mineápolis norte |
|
|
|
| 2 |
55455 |
Mineápolis S. |
|
|
|
| 3 |
4446804e |
Mineápolis E |
|
|
|
| 4 |
4389568 |
Mineápolis F |
|
|
| 5 |
g58934 |
San Pablo N. |
|
|
|
| 6 |
4989034 |
San Pablo E. |
|
|
|
| 7 |
3496f |
San Pablo |
|
|
|
| 8 |
5404390sfd |
Mineápolis E |
|
|
|
| 9 |
43960 |
Mineápolis norte |
|
|
|
| 10 |
569043 |
San Pablo N. |
|
|
|
| 11 |
6590549 |
San Pablo E. |
|
|
|
dt3 = Open( "file_28.jmp" );
colcmp = "Area";
col = dt3 << get column names( string );
nc = N Items( col );
Show( nc );
For( j = 1, j <= nc, j++,
colname = Column( j ) << Get Name;
Show( colname );
If( Contains( colname, colcmp ),
dt3 << Select Where( Starts With( :colname, "Minneapolis" ) );
dt3 << Subset( Output Table Name( "MPLS" ), Selected Rows( 1 ), Selected columns only( 0 ) );
dt3 << Select Where( Starts With( :colname, "St. Paul" ) );
dt3 << Subset( Output Table Name( "STP" ), Selected Rows( 1 ), Selected columns only( 0 ) );
);
);
dtPM = Data Table( "MPLS" );
a = "Numeric";
colPM = dtPM << get column names( string );
ncPM = N Items( colPM );
Show( ncPM );
For( k = 1, k <= ncPM, k++,
colname = Column( k ) << Get Name;
Show( colname );
which = dtPM:colname << Get Data Type;
Show( which );
If( Contains( which, a ),
count = count + 1;
colnames2[count] = colname || "_MPLS";
Mean1[count] = Col Mean( :Column( k ) );
Std1[count] = Col Std Dev( :Column( k ) );
Show( Mean1[count] );
);
);
Combinación y limpieza de datosRe: Seleccione dónde y subconjunto según el valor de la celdaGracias Jim Estaba confundido sobre cómo pasar variables que almacenan nombres de columnas a funciones y realmente no pude encontrar ejemplos. Esto borró el error.
Re: Seleccione dónde y subconjunto según el valor de la celdaLe está diciendo a JMP que busque una columna llamada :colname.En esta referencia, JMP no evaluará la referencia de columna más allá de :colname.Lo que debe hacer es especificar el nombre en una función As Column().Entonces funcionará
For( j = 3, j <= nc, j++,
colname = Column( j ) << Get Name;
Show( colname );
If( Contains( colname, colcmp ),
dt3 << Select Where( Starts With( as column(colname), "Minneapolis" ) );
dt3 << Subset( Output Table Name( "MPLS" ), Selected Rows( 1 ), Selected columns only( 0 ) );
dt3 << Select Where( Starts With( as column(colname), "St. Paul" ) );
dt3 << Subset( Output Table Name( "STP" ), Selected Rows( 1 ), Selected columns only( 0 ) );
);
);