Comment calculer l'intervalle de la dernière ligne ci-dessus qui n'est pas nul?Utilisez un exemple de ceci dans la figure :
Merci!

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt[2::8,"height"]="";
dt[10::17,"height"]="";
dt[19::28,"height"]="";
dt[30::39,"height"]="";
New Column("new",Character,"Nominal",Width(5));ScriptRe : Comment calculer l'intervalle de la dernière ligne ci-dessus qui n'est pas nul ?Il est simple de déplacer les données d'une colonne dans une matrice, puis de générer de nouvelles matrices dans le format souhaité pour les nouvelles colonnes, puis une fois terminé, de déplacer les matrices vers la table de données. Toutes les manipulations matricielles seront effectuées en mémoire.Re : Comment calculer l'intervalle de la dernière ligne ci-dessus qui n'est pas nul ?Merci!
Re : Comment calculer l'intervalle de la dernière ligne ci-dessus qui n'est pas nul ?Je souhaite ajouter une autre colonne de "new2" pour l'amener au prochain intervalle de qualification.

Comment calculer et imprimer simultanément les deux colonnes ("new", "new2") ? Comme le tableau VBA, en mémoire, une fois sortie dans la table.
Merci!
Re : Comment calculer l'intervalle de la dernière ligne ci-dessus qui n'est pas nul ?Merci Jim!
J'utilise VBA et j'écris souvent des boucles pour réaliser mes propres projets.
J'utilise souvent plus de quelques millions de lignes de données. La vitesse est un problème clé.
J'ai l'impression que JMP est plus rapide.
Re : Comment calculer l'intervalle de la dernière ligne ci-dessus qui n'est pas nul ?Excel est comme de nombreux langages, y compris JMP, qui ont leurs propres raccourcis de codage uniques.Certains d'entre eux deviennent plus universellement utilisés dans de nombreuses langues, mais la plupart restent simplement une syntaxe unique dans leur propre langue.Ces éléments syntaxiques dans JMP sont tous traités dans le Guide de création de scripts.
Voici une autre façon de faire le calcul.Cela fonctionne bien sur une petite table de données, mais devient coûteux avec beaucoup de lignes.
names default to here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt[2 :: 8, "height"] = "";
dt[10 :: 17, "height"] = "";
dt[19 :: 28, "height"] = "";
dt[30 :: 39, "height"] = "";
New Column( "new",
formula(
If( Is Missing( :height ) == 0,
curRow = Row();
x = curRow - Max( Current Data Table() << get rows where( Row() < curRow & Is Missing( :height ) == 0 ) );
,
x = .
);
x;
)
)
Re : Comment calculer l'intervalle de la dernière ligne ci-dessus qui n'est pas nul ?La formule que j'ai fournie n'est-elle pas suffisante?
Re : Comment calculer l'intervalle de la dernière ligne ci-dessus qui n'est pas nul ?J'utilise simplement cette "Big Class" traitée. JMP "données pour illustrer :
Si la colonne de hauteur d'une ligne n'est pas vide, recherchez l'intervalle du nombre de lignes non vides dans la dernière ligne des données de la colonne de hauteur au-dessus de la ligne.
Par exemple, dt[18,"hauteur"] n'est pas vide, la dernière ligne non vide en haut de la ligne 18 est DT[9,"hauteur"].Donc dt[18,"nouveau"] renvoie : 18 - 9 = 9
Merci!Re : Comment calculer l'intervalle de la dernière ligne ci-dessus qui n'est pas nul ?qu'attendez-vous des résultats avec cette formule ?
Re : Comment calculer l'intervalle de la dernière ligne ci-dessus qui n'est pas nul ?Les paramètres tels que "> 0" ne fonctionnent pas dans JMP, contrairement à Excel.
Contains(:[Index(1,Row())],">0",-1)
Contains(:[Index(1,Row())],!is Missing(:),-1)
Re : Comment calculer l'intervalle de la dernière ligne ci-dessus qui n'est pas nul ?Merci Jim!
J'ai toujours utilisé Excel, et ces processus de données simples sont faciles.
Je ne veux pas traiter les données via Excel, puis utiliser un module professionnel qui UTILISE JMP. Au lieu de cela, utilisez JMP pour tous les gérer.
Je pense que JMP peut être fait avec cette formule. Mais sachez l'écrire
Contains(:[Index(1,Row())],,-1)
Re : Comment calculer l'intervalle de la dernière ligne ci-dessus qui n'est pas nul ?- Je ne pense pas que vous vouliez que la nouvelle colonne appelée "Nouveau" soit une colonne de caractères, ni qu'elle soit "Nominale", j'ai donc écrit ma formule sur la base de ces hypothèses.
- Vous semblez avoir du mal avec le concept d'une formule JMP.Plusieurs de vos entrées de discussion ont demandé de l'aide pour résoudre des problèmes assez simples.Que peut faire la Communauté pour vous aider à créer ces formules ?
- Voici ma solution ...... d'autres peuvent avoir des méthodes différentes ou meilleures
names default to here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt[2 :: 8, "height"] = "";
dt[10 :: 17, "height"] = "";
dt[19 :: 28, "height"] = "";
dt[30 :: 39, "height"] = "";
New Column( "new",
formula(
If( Row() == 1, last = 0 );
If( Is Missing( :height ) == 0,
If( last == 0,
x = .;
last = Row();
,
x = Row() - last
);
last = Row();
,
x = .
);
x;
)
);