Seleccione varias columnas y actualice el valor de la columna que faltaHola,
Soy nuevo en las secuencias de comandos JMP. Estoy trabajando en un script para seleccionar varias columnas que contienen la palabra "Censor" y actualizar el valor faltante. A continuación se muestra un conjunto de datos de muestra. He enumerado tres columnas Censor A, Censor B y Censor C. pero en el mundo real, el número de columnas puede ser diferente cada vez. entonces tendré que seleccionar columnas que contengan el trabajo "Censor" y luego actualizar todos los valores faltantes con "S". ¿Puedo hacer eso en JSL? Todavía estoy aprendiendo a crear secuencias de comandos pero no pude encontrar la manera en la Ayuda de JMP.
| Censura A | Censura B | Censura C |
| F | | F |
| F | F | |
| F | | |
| | | F |
| | F | F |
| F | | |
Re: Seleccionar varias columnas y actualizar el valor de la columna que faltaAquí hay una modificación de mi script inicial para hacer lo que creo que quieres.....
Names Default To Here( 1 );
// Create a sample data table
dt = New Table( "Example 2",
Add Rows( 6 ),
New Column( "Censor A",
Character,
"Nominal",
Set Values( {"F", "F", "F", "", "", "F"} )
),
New Column( "Censor B",
Character,
"Nominal",
Set Values( {"", "F", "", "", "F", ""} )
),
New Column( "Censor C",
Character,
"Nominal",
Set Values( {"F", "", "", "F", "F", ""} )
),
New Column( "Setting Column",
Character,
"Nominal",
Set Values( {"Z", "X", "Y", "W", "P", "Q"} )
)
);
// Get the names of all of the columns
colNames = dt << get column names( string );
// Loop across all columns and if a Censor column
// then process
For( i = 1, i <= N Items( colNames ), i++,
If( Left( colNames[i], 6 ) == "Censor",
dt << select where( As Column( colNames[i] ) == "" );
// If blanks are found then process
rowMat = dt << get selected rows;
If( N Rows( rowMat ) > 0,
For( k = 1, k <= N Rows( rowMat ), k++,
Column( colNames[i] )[rowMat[k]] = :Setting Column[rowMat[k]]
)
);
)
);Re: Seleccionar varias columnas y actualizar el valor de la columna que falta¡Gracias por tu ayuda! Aquí hay otras preguntas. Para el caso anterior, ¿cómo puedo actualizar el valor faltante con el valor en otra columna?Re: Seleccionar varias columnas y actualizar el valor de la columna que falta¡Gracias!Re: Seleccionar varias columnas y actualizar el valor de la columna que faltaAquí hay un script simple que logrará completar las celdas que faltan.
Names Default To Here( 1 );
// Create a sample data table
dt = New Table( "Example",
Add Rows( 6 ),
New Column( "Censor A",
Character,
"Nominal",
Set Values( {"F", "F", "F", "", "", "F"} )
),
New Column( "Censor B",
Character,
"Nominal",
Set Values( {"", "F", "", "", "F", ""} )
),
New Column( "Censor C",
Character,
"Nominal",
Set Values( {"F", "", "", "F", "F", ""} )
)
);
// Get the names of all of the columns
colNames = dt << get column names( string );
// Loop across all columns and if a Censor column
// then process
For( i = 1, i <= N Items( colNames ), i++,
If( Left( colNames[i], 6 ) == "Censor",
dt << select where( As Column( colNames[i] ) == "" );
// If blanks are found then process
If( N Rows( dt << get selected rows ) > 0,
As Column( colNames[i] )[dt << get selected Rows] = "S"
);
)
);