attribuer une valeur après / avant les lignes actuellement sélectionnéesBonjour, par curiosité,
Si vous avez sélectionné des lignes mais que vous devez sélectionner non seulement celles-ci, mais également celles qui sont exactement adjacentes (avant / après, 1 ligne, respectivement), comment pouvez-vous scripter ceci?
Je l’ai maintenant fait en créant plusieurs nouvelles colonnes et en ajoutant des valeurs aux lignes que je voudrais également sélectionner pour pouvoir exécuter ultérieurement une fonction Sélectionner où.
Une manière plus élégante serait hautement appréciée!
Cordialement, Astrid
Re: attribuer une valeur après / avant les lignes actuellement sélectionnéesMerci, celui-ci a parfaitement fonctionné pour ma question!
@julien a écrit:
salut Astrid,
Je soupçonne qu'il y a un moyen plus élégant, mais ce qui suit devrait le faire:
dt = Current Data Table();
curSelRow = as list(dt << Get Selected Rows());
newSelRow = curSelRow || curSelRow + 1 || curSelRow - 1;
//remove a row = 0 reference if present
Remove From( newSelRow, aslist(loc(newSelRow,0)));
//remove reference to a row beyond data set
Remove From( newSelRow, aslist(loc(newSelRow,NRows(dt)+1)));
dt << Select Rows(newSelRow);
edit: code ajouté pour supprimer la référence à une ligne après la dernière ligne de l'ensemble de données (ce qui se produirait si la dernière ligne de l'ensemble de données était sélectionnée)
@julien a écrit:
salut Astrid,
Je soupçonne qu'il y a un moyen plus élégant, mais ce qui suit devrait le faire:
dt = Current Data Table();
curSelRow = as list(dt << Get Selected Rows());
newSelRow = curSelRow || curSelRow + 1 || curSelRow - 1;
//remove a row = 0 reference if present
Remove From( newSelRow, aslist(loc(newSelRow,0)));
//remove reference to a row beyond data set
Remove From( newSelRow, aslist(loc(newSelRow,NRows(dt)+1)));
dt << Select Rows(newSelRow);
edit: code ajouté pour supprimer la référence à une ligne après la dernière ligne de l'ensemble de données (ce qui se produirait si la dernière ligne de l'ensemble de données était sélectionnée)
Re: attribuer une valeur après / avant les lignes actuellement sélectionnéesMerci, ça a fonctionné!
Re: attribuer une valeur après / avant les lignes actuellement sélectionnéesdt = Open( "$SAMPLE_DATA/Cities.jmp" );
dt << Select Randomly(0.1); // Select random rows for demo
SR = dt << Get Selected Rows(); // Get row numbers of selected rows
// Assuming we want to select the rows after the selected rows
for( i = 1, i <= N Row(SR), i++,
NewRowToSelect = SR[i] + 1 ;
dt << Select Rows(NewRowToSelect); // Alternatively can store these values as a list and pass at once
);
Re: attribuer une valeur après / avant les lignes actuellement sélectionnéessalut Astrid,
Je soupçonne qu'il y a un moyen plus élégant, mais ce qui suit devrait le faire:
dt = Current Data Table();
curSelRow = as list(dt << Get Selected Rows());
newSelRow = curSelRow || curSelRow + 1 || curSelRow - 1;
//remove a row = 0 reference if present
Remove From( newSelRow, aslist(loc(newSelRow,0)));
//remove reference to a row beyond data set
Remove From( newSelRow, aslist(loc(newSelRow,NRows(dt)+1)));
dt << Select Rows(newSelRow);
edit: code ajouté pour supprimer la référence à une ligne après la dernière ligne de l'ensemble de données (ce qui se produirait si la dernière ligne de l'ensemble de données était sélectionnée)