Effacement des données dans la sélectionJ'ai un grand tableau avec plusieurs lignes et colonnes. Je veux supprimer certaines données de la table.
Par exemple, supprimez les données de la ligne 2 jusqu'à la colonne no. 10 sur la base de certains critères. Mais, conserver les données dans la même ligne de la colonne 11 intactes. Le code que j'ai est le suivant :
cdt = Current Data Table();
cdt << select columns( 1 :: 21 );
cdt << select where(Is Missing(:Name("Record no.")));Je veux supprimer les données qui ont été sélectionnées.
Il doit y avoir un moyen simple de le faire, mais je ne sais vraiment pas comment le faire. Je peux faire un clic droit et sélectionner effacer.
Mais, je veux un code de script jsl pour que cette tâche puisse être automatisée.
Automatisation et scriptÉtudes de consommation et de marchéRe : Effacer les données de la sélectionMerci beaucoup. J'apprécie vraiment les efforts considérables que vous avez déployés pour m'aider à résoudre le problème et à comprendre ce qu'est vraiment JMP. Les gens continuent de dire que JMP n'est pas Excel, mais il est très difficile de garder cela à l'esprit lorsque vous passez d'Excel à JMP. De plus, jsl fait penser que JMP a des capacités comme celles de MATLAB ou Python, ce qui n'est pas toujours vrai.
Je suis tout à fait d'accord sur la nécessité de se former et de se renseigner sur JMP.
Comme moi, la majorité d'entre nous ici sommes des personnes qui ont commencé à utiliser JMP une fois qu'elles ont commencé à travailler dans l'industrie.
Ce n'est peut-être pas bon pour apprendre, mais parfois demander des solutions dans les forums donne des résultats plus rapides plutôt que de lire le
documentation (ce qui est la bonne chose à faire). Vos solutions dans le fil de la communauté m'ont été d'une grande aide jusqu'à présent et je vous en suis très reconnaissant.
Re : Effacer les données de la sélectionIl y a des cas où revenir à un outil avec lequel vous avez passé des années, apprendre les tenants et les aboutissants, est la chose rapide/correcte à faire.Et Excel est certainement le principal outil de référence pour les nouveaux utilisateurs de JMP.
En particulier, étant donné qu'Excel est basé sur exCELL et que JMP est basé sur des colonnes, JMP n'aura pas de fonctions qui traitent de choses comme déplacer certaines cellules dans une colonne donnée, vers le haut ou vers le bas dans la colonne.En effet, JMP suppose que les valeurs de colonne dans la même ligne ont une relation.Excel n'a pas une telle hypothèse.D'autre part, étant donné que JMP est basé sur des colonnes, il en tire parti dans de nombreuses fonctions, plates-formes, etc.Dans de nombreux cas, on fait un travail supplémentaire et on lui fait faire certaines des choses que JMP fait très facilement.Vlookup d'Excel est l'un des éléments qui demande beaucoup plus d'efforts pour obtenir des données "recherchées" que la plate-forme de mise à jour de JMP.À l'inverse, la tâche sur laquelle vous avez interrogé la communauté, déplacer des cellules vers le haut dans une colonne, nécessite que JMP fasse plus de travail pour l'accomplir.Une chose qui est vraie à propos de JMP, par rapport à Excel, est que JMP est plus étendu/complexe, en raison de son objectif analytique.Il faut donc plus de formation/d'éducation.C'est pour cette raison que vous verrez des membres de la Communauté inciter les individus à lire les documents du JMP.Ils sont vraiment le seul moyen de vraiment comprendre ce qui peut être fait avec JMP et comment l'aborder.
Ci-dessous se trouve un script qui déplace les lignes non manquantes dans chaque colonne vers le haut.Ce n'est qu'une des façons dont je peux imaginer qu'on fasse cela.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
dt1 = dt << subset(selected rows(0), selected columns(0));
dt1 << set name( "Example 1" );
// randomly clear some data from the different columns
// to have different cells blank or with missing values
For( i = 1, i <= N Cols( dt1 ), i++,
For( k = 1, k <= 5, k++,
If( Column( dt1, i ) << get datatype == "Character",
Column( dt1, i )[Random Integer( 1, N Rows( dt1 ) )] = "",
Column( dt1, i )[Random Integer( 1, N Rows( dt1 ) )] = .
)
)
);
// For the example, create a copy of the Example 1 data table to work on,
// so the beginning and modified tables can be viewed
wk1 = dt1 << subset(selected rows(0), selected columns(0));
wk1 << set name("Working 1");
// Remove the missing cells for each column and move up the remaining
// rows to fill in
For(i=1,i<=n cols(wk1),i++,
dtTemp=wk1<<SUBSET></SUBSET>Re : Effacer les données de la sélectionActuellement, je n'ai aucune idée de la façon dont cela peut être fait. Ma solution à ce problème est maintenant de
exporter la table jmp dans excel.
cdt << Save("C:\Users\Neal\Desktop\Data entry.xlsx");
Après avoir exporté vers Excel, je me débarrasse des cellules vides et remets les données dans la table jmp.
Re : Effacer les données de la sélectionQu'as-tu essayé ?
Re : Effacer les données de la sélectionMerci pour la solution. Ça marche. Mais, j'ai un autre problème maintenant.
Après avoir supprimé toutes les cellules, je souhaite consolider les données. c'est-à-dire que les données remonteront pour prendre
espace laissé après la suppression. Existe-t-il un code jsl pour y parvenir?Re : Effacer les données de la sélectionVoici une autre façon de coder cela.Il gère une plage numérique de colonnes et suppose qu'il s'agit de colonnes de caractères. Il définit donc leurs valeurs sur un espace "".
names default to here(1);
cdt = open("$SAMPLE_DATA/Big Class.jmp");
rows = cdt << get rows where (:sex=="F");
cdt[rows,4::5]= "";Re : Effacer les données de la sélectionVotre solution fonctionnerait pour les colonnes numériques. Mais qu'en est-il des non-numériques.
Aussi, au lieu d'aller une colonne après l'autre. N'est-il pas possible de faire une gamme. Quelque chose comme 1 :: 4 ?
Re : Effacer les données de la sélectionOK, désolé, j'ai relu votre description:
cdt = open("$SAMPLE_DATA/Big Class.jmp");
rows = cdt << get rows where (:sex=="F");
column(cdt,4)[rows] = .;
column(cdt,5)[rows] = .;Re : Effacer les données de la sélectionJe veux juste supprimer le contenu sélectionné. Si j'utilise
Delete Rows
cela supprimera toute la ligne. Comme je l'ai dit, je ne veux pas que toute la ligne soit supprimée.
Re : Effacer les données de la sélection... ou peut-être que je suis stupide, et tu veux dire que tu veux effacer le contenu des cellules sélectionnées ?
Re : Effacer les données de la sélectionJe pense que ce que vous demandez, c'est qu'une fois que vous avez sélectionné certaines lignes, comment les supprimez-vous ?Vous pouvez utiliser le message delete rows :
dt << delete rows;
Si vous vérifiez l'index de script, vous verrez que seules les lignes sélectionnées sont supprimées !
Re : Effacer les données de la sélectionVotre solution consiste à effacer la sélection.
Je cherche 'clear'-- supprimer le contenu de la sélection.
Désolé, je n'ai pas pu expliquer clairement.
Re : Effacer les données de la sélectionVous pouvez utiliser les messages effacer la sélection de colonne et effacer sélectionner respectivement pour les colonnes et les lignes.
cdt = open("$SAMPLE_DATA/Big Class.jmp");
cdt << select columns(4::5);
cdt << select where(:sex=="F");
wait(2);
cdt << clear column selection;
cdt << clear select;