cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • JMP will suspend normal business operations for our Winter Holiday beginning on Wednesday, Dec. 24, 2025, at 5:00 p.m. ET (2:00 p.m. ET for JMP Accounts Receivable).
    Regular business hours will resume at 9:00 a.m. EST on Friday, Jan. 2, 2026.
  • We’re retiring the File Exchange at the end of this year. The JMP Marketplace is now your destination for add-ins and extensions.

Discussions

Solve problems, and share tips and tricks with other JMP users.
%3CLINGO-SUB%20id%3D%22lingo-sub-4886%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EEntfernen%20Sie%20Zeilen%20mit%20einem%20oder%20mehreren%20leeren%20Werten%20mithilfe%20von%20JSL%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-4886%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%26lt%3Bmeta%20http-equiv%3D%22Content-Type%22%20content%3D%22text%2Fhtml%3B%20charset%3DUTF-8%22%20%2F%26gt%3B%3CP%3EIch%20habe%20eine%20Tabelle%2C%20in%20der%20jede%20Zeile%20einen%20einzelnen%20Messtyp%20bei%20drei%20Temperaturen%20enth%C3%A4lt%2C%20die%20jeweils%20in%20einer%20eigenen%20Spalte%20gespeichert%20sind.%20Letztendlich%20m%C3%B6chte%20ich%20die%20Deltas%20zwischen%20diesen%20Messungen%20berechnen%20und%20diese%20Daten%20dann%20in%20einer%20neuen%20Tabelle%20stapeln.%20Allerdings%20werden%20nicht%20alle%20Messungen%20bei%20allen%20drei%20Temperaturen%20durchgef%C3%BChrt%2C%20und%20ich%20muss%20diejenigen%20Messungen%20(Zeilen)%20ausschlie%C3%9Fen%2C%20bei%20denen%20eine%20oder%20mehrere%20Datenspalten%20leer%20sind.%20Ich%20muss%20dies%20mit%20einem%20JMP%209.0-Skript%20tun.%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3EGegeben%3A%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3EdtSplit%20%3D%3C%2FP%3E%3CTABLE%20border%3D%221%22%20class%3D%22jiveBorder%22%20style%3D%22border%3A%201px%20solid%20%23000000%3B%20width%3A%20100%25%3B%22%3E%3CTBODY%3E%3CTR%3E%3CTH%20style%3D%22text-align%3A%20center%3B%20background-color%3A%20%236690bc%3B%20color%3A%20%23ffffff%3B%20padding%3A%202px%3B%22%20valign%3D%22middle%22%3EMessung%3C%2FTH%3E%3CTH%20style%3D%22text-align%3A%20center%3B%20background-color%3A%20%236690bc%3B%20color%3A%20%23ffffff%3B%20padding%3A%202px%3B%22%20valign%3D%22middle%22%3ET1%3C%2FTH%3E%3CTH%20style%3D%22text-align%3A%20center%3B%20background-color%3A%20%236690bc%3B%20color%3A%20%23ffffff%3B%20padding%3A%202px%3B%22%20valign%3D%22middle%22%3E%3CSTRONG%3ET2%3C%2FSTRONG%3E%3C%2FTH%3E%3CTH%20style%3D%22text-align%3A%20center%3B%20background-color%3A%20%236690bc%3B%20color%3A%20%23ffffff%3B%20padding%3A%202px%3B%22%20valign%3D%22middle%22%3ET3%3C%2FTH%3E%3C%2FTR%3E%3CTR%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3EMessung%20A%3C%2FTD%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3E5%3C%2FTD%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3E12%3C%2FTD%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3E89%3C%2FTD%3E%3C%2FTR%3E%3CTR%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3EMessung%20B%3C%2FTD%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3E13%3C%2FTD%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3E%3C%2FTD%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3E8%3C%2FTD%3E%3C%2FTR%3E%3CTR%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3EMessung%20C%3C%2FTD%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3E%3C%2FTD%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3E52%3C%2FTD%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3E57%3C%2FTD%3E%3C%2FTR%3E%3CTR%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3EMessung%20D%3C%2FTD%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3E22%3C%2FTD%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3E21%3C%2FTD%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3E%3C%2FTD%3E%3C%2FTR%3E%3CTR%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3EMessung%20E%3C%2FTD%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3E8%3C%2FTD%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3E%3C%2FTD%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3E%3C%2FTD%3E%3C%2FTR%3E%3CTR%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3EMessung%20F%3C%2FTD%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3E%3C%2FTD%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3E%3C%2FTD%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3E15%3C%2FTD%3E%3C%2FTR%3E%3CTR%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3EMessung%20G%3C%2FTD%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3E%3C%2FTD%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3E54%3C%2FTD%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3E%3C%2FTD%3E%3C%2FTR%3E%3C%2FTBODY%3E%3C%2FTABLE%3E%3CP%3E%3C%2FP%3E%3CP%3EIch%20muss%20Folgendes%20produzieren%3A%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3EdtClean%20%3D%3C%2FP%3E%3CTABLE%20border%3D%221%22%20class%3D%22jiveBorder%22%20style%3D%22border%3A%201px%20solid%20%23000000%3B%20width%3A%20100%25%3B%22%3E%3CTBODY%3E%3CTR%3E%3CTH%20style%3D%22text-align%3A%20center%3B%20background-color%3A%20%236690bc%3B%20color%3A%20%23ffffff%3B%20padding%3A%202px%3B%22%20valign%3D%22middle%22%3EMessung%3C%2FTH%3E%3CTH%20style%3D%22text-align%3A%20center%3B%20background-color%3A%20%236690bc%3B%20color%3A%20%23ffffff%3B%20padding%3A%202px%3B%22%20valign%3D%22middle%22%3ET1%3C%2FTH%3E%3CTH%20style%3D%22text-align%3A%20center%3B%20background-color%3A%20%236690bc%3B%20color%3A%20%23ffffff%3B%20padding%3A%202px%3B%22%20valign%3D%22middle%22%3ET2%3C%2FTH%3E%3CTH%20style%3D%22text-align%3A%20center%3B%20background-color%3A%20%236690bc%3B%20color%3A%20%23ffffff%3B%20padding%3A%202px%3B%22%20valign%3D%22middle%22%3ET3%3C%2FTH%3E%3C%2FTR%3E%3CTR%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3EMessung%20A%3C%2FTD%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3E5%3C%2FTD%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3E12%3C%2FTD%3E%3CTD%20style%3D%22padding%3A%202px%3B%22%3E89%3C%2FTD%3E%3C%2FTR%3E%3C%2FTBODY%3E%3C%2FTABLE%3E%3CP%3E%3C%2FP%3E%3CP%3EIch%20habe%20versucht%2C%20etwas%20zu%20verwenden%20wie%3A%3C%2FP%3E%3CPRE%20__default_attr%3D%22javascript%22%20__jive_macro_name%3D%22code%22%20class%3D%22jive_text_macro%20jive_macro_code%20_jivemacro_uid_13371150858817678%22%20jivemacro_uid%3D%22_13371150858817678%22%3EdtSplit%20%26lt%3B%26lt%3B%20Select%20Where(%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20Is%20Empty(%3AT1)%20%7C%7C%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20Is%20Empty(%3AT2)%20%7C%7C%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20is%20Empty(%3AT3)%3CBR%20%2F%3E)%20%26lt%3B%26lt%3B%20Delete%20Rows%3B%3CBR%20%2F%3E%3C%2FPRE%3E%3CP%3EAllerdings%20w%C3%A4hlt%20jede%20Select%20Where(Is%20Empty(%3ACOL))-Anweisung%20immer%20alle%20Zeilen%20aus.%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3EIch%20bin%20mir%20sicher%2C%20dass%20mir%20etwas%20Einfaches%20fehlt.%20Ihre%20Hilfe%20wird%20sehr%20gesch%C3%A4tzt%2C%20danke.%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E-%20Matt%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-191231%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EBetreff%3A%20Zeilen%20mit%20einem%20oder%20mehreren%20leeren%20Werten%20mithilfe%20von%20JSL%20entfernen%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-191231%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EHallo%3C%2FP%3E%3CP%3EDanke%20f%C3%BCr%20die%20Eingabe.%20Ich%20habe%20mir%20das%20von%20Ihnen%20empfohlene%20Muster%20f%C3%BCr%20fehlende%20Daten%20angesehen%20und%20es%20funktioniert%20irgendwie%2C%20aber%20nicht%20vollst%C3%A4ndig.%3C%2FP%3E%3CP%3EIn%20meiner%20Datentabelle%20hat%20jeder%20Name%204%20verschiedene%20Zeilen.%20Jede%20der%204%20Zeilen%20eines%20Namens%20ist%20das%20Ergebnis%20eines%20Tests%20(Sensor%2C%20Maske%2C%20EVM%20und%20Leistung).%3C%2FP%3E%3CP%3EIn%20meinem%20Datentabellenbeispiel%20besteht%20Ger%C3%A4t%20A%20den%20ersten%20Test%20%E2%80%9ESens%E2%80%9C%20nicht%20und%20besteht%20den%202.%2C%203.%20und%204.%20Test.%20Da%20Ger%C3%A4t%20A%20%E2%80%9ESens%E2%80%9C%20nicht%20besteht%2C%20handelt%20es%20sich%20um%20ein%20ausgefallenes%20Ger%C3%A4t%2C%20obwohl%20es%20den%202.%2C%203.%20und%204.%20Test%20besteht.%3C%2FP%3E%3CP%3EWenn%20ich%20Tables%3D%3D%26gt%3BMissing%20Data%20Pattern%20verwende%2C%20werden%20die%202.%2C%203.%20und%204.%20Zeile%20von%20A%20gel%C3%B6scht.%20Was%20ich%20nicht%20suche.%20Ich%20m%C3%B6chte%204%20Zeilen%20jedes%20Namens%20l%C3%B6schen%2C%20wenn%20keine%20Daten%20darauf%20vorhanden%20sind%20(keine%20Daten%20bei%2010%20MHz%2C%2020%20MHz%2C%2030%20MHz%20und%201000%20MHz).%20In%20meiner%20Datentabelle%20werden%20die%20Namen%20C%2C%20G%2C%20H%2C%20I%2C%20JK%20und%20N%20gel%C3%B6scht.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EVielen%20Dank%20f%C3%BCr%20Ihre%20Hilfe%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-190476%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EBetreff%3A%20Zeilen%20mit%20einem%20oder%20mehreren%20leeren%20Werten%20mithilfe%20von%20JSL%20entfernen%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-190476%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3E%3CSPAN%20style%3D%22display%3A%20inline%20!important%3B%20float%3A%20none%3B%20background-color%3A%20%23ffffff%3B%20color%3A%20%23333333%3B%20cursor%3A%20text%3B%20font-family%3A%20inherit%3B%20font-size%3A%2016px%3B%20font-style%3A%20normal%3B%20font-variant%3A%20normal%3B%20font-weight%3A%20300%3B%20letter-spacing%3A%20normal%3B%20line-height%3A%201.7142%3B%20orphans%3A%202%3B%20text-align%3A%20left%3B%20text-decoration%3A%20none%3B%20text-indent%3A%200px%3B%20text-transform%3A%20none%3B%20-webkit-text-stroke-width%3A%200px%3B%20white-space%3A%20normal%3B%20word-spacing%3A%200px%3B%22%3ESie%20m%C3%BCssen%20sich%20die%20Plattform%20%E2%80%9EMissing%20Data%20Pattern%E2%80%9C%20ansehen%3C%2FSPAN%3E%20bilden.Dadurch%20k%C3%B6nnen%20Sie%20alle%20Zeilen%20identifizieren%2C%20in%20denen%20alle%20Werte%20fehlen%2C%20und%20dann%20k%C3%B6nnen%20Sie%20die%20Zeilen%20l%C3%B6schen%20usw.%3C%2FP%3E%0A%3CP%3ETabellen%3D%3D%26gt%3BFehlendes%20Datenmuster%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-190459%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EBetreff%3A%20Zeilen%20mit%20einem%20oder%20mehreren%20leeren%20Werten%20mithilfe%20von%20JSL%20entfernen%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-190459%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EHALLO%3C%2FP%3E%3CP%3EDies%20ist%20mein%20erster%20Beitrag%20und%20ich%20bin%20mir%20nicht%20sicher%2C%20ob%20die%20angeh%C3%A4ngte%20Excel-Datei%20durchgeht%20oder%20nicht.%20Wenn%20nicht%2C%3C%2FP%3E%3CP%3EIch%20f%C3%BCge%20auch%20das%20PNG%20der%20Beispieldatendatei%20bei%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Data_table_example.PNG%22%20style%3D%22width%3A%20305px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Data_table_example.PNG%22%20style%3D%22width%3A%20305px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Data_table_example.PNG%22%20style%3D%22width%3A%20305px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Data_table_example.PNG%22%20style%3D%22width%3A%20305px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F16696iA5D67C4FE3845FC4%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22Data_table_example.PNG%22%20alt%3D%22Data_table_example.PNG%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%20Ich%20bin%20JMP-Neuling%20(ich%20verwende%20JMP%2014)%20und%20ben%C3%B6tige%20Hilfe%20beim%20Zeilenl%C3%B6schskript.%3CBR%20%2F%3E%20Meine%20Datentabelle%20enth%C3%A4lt%20Daten%20von%20vielen%20verschiedenen%20Ger%C3%A4ten%2C%20wobei%20jedes%20Ger%C3%A4t%20getestet%20wird%3CBR%20%2F%3E%20vier%20verschiedene%20Fehler%20(Empfindlichkeit%2C%20Maske%2C%20EVM%20und%20Leistung)%20%C3%BCber%20einen%20weiten%20Frequenzbereich%3CBR%20%2F%3E%20von%2010%20MHz%20bis%201000%20MHz.%20Passende%20Ger%C3%A4te%20sind%20diejenigen%2C%20die%20f%C3%BCr%20alle%20vier%20leere%20Zellen%20%E2%80%9E%E2%80%9C%20haben%3CBR%20%2F%3E%20Testen%20Sie%20%C3%BCber%20Frequenzbereiche%20hinweg%20und%20ich%20m%C3%B6chte%20sie%20aus%20der%20Datentabelle%20entfernen.%3CBR%20%2F%3E%20(L%C3%B6schen%20Sie%20die%20gr%C3%BCnen%20Zeilen%20der%20angeh%C3%A4ngten%20Excel-Datei%20%E2%80%93%20Ger%C3%A4te%20C%2C%20G%2C%20H%2C%20I%2C%20J%2C%20K%20und%20N)%3C%2FP%3E%3CP%3E%3CBR%20%2F%3E1.%20Problem%3A%20So%20l%C3%B6schen%20Sie%20leere%20Zeilen%20(mit%20Spalten%2010%20MHz%20bis%201000%20MHz%20%3D%20leer)%3CBR%20%2F%3E%20Der%20folgende%20Befehl%2C%20den%20ich%20gefunden%20habe%2C%20ist%20%C3%A4hnlich%2C%20aber%20nicht%20n%C3%BCtzlich%2C%20da%20ich%20100%20verschiedene%20Spalten%20und%20%E2%80%9Eund%E2%80%9C%20habe.%3CBR%20%2F%3E%20Sie%20alle%20auszuprobieren%2C%20ist%20ziemlich%20langwierig%20und%20nicht%20skalierbar%2C%20wenn%20wir%20uns%20sp%C3%A4ter%20dazu%20entschlie%C3%9Fen%2C%20die%20H%C3%A4ufigkeit%20zu%20erh%C3%B6hen%3CBR%20%2F%3E%20%C3%BCber%201000%20MHz%3C%2FP%3E%3CP%3Edtsplit%20%26lt%3B%26lt%3B%20Select%20Where(Fehlt(%3AT1)%20%7C%20Fehlt(%3AT2)%20%7C%20fehlt(%3AT3))%20%26lt%3B%26lt%3B%20Zeilen%20l%C3%B6schen%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%20Ich%20habe%20auch%20diesen%20Befehl%20ausprobiert%3A%3CBR%20%2F%3E%20For(%20i%20%3D%202%2C%20i%20%26lt%3B%3D%20101%2C%20i%2B%2B%2C%3CBR%20%2F%3E%20dtSplit%20%26lt%3B%26lt%3B%20select%20where(%20Is%20Missing(%20Column(%20i%20)%5B%5D%20)%20)%20%26lt%3B%26lt%3B%20Zeilen%20l%C3%B6schen%3CBR%20%2F%3E%20)%3B%3CBR%20%2F%3E%20Dieser%20Befehl%20gibt%20mir%20eine%20Fehlermeldung%3A%3CBR%20%2F%3E%20Im%20folgenden%20Skript%20ist%20der%20Fehler%20mit%20%2F*%23%23%23*%2F%20markiert.%3CBR%20%2F%3E%20dt%20%3D%20Aktuelle%20Datentabelle()%3B%3CBR%20%2F%3E%20For(%20i%20%3D%202%2C%20i%20%26lt%3B%3D%20100%2C%20i%2B%2B%2C%3CBR%20%2F%3E%20dtSplit%2F*%23%23%23*%2F%20%26lt%3B%3CSELECT%20where%3D%22%22%3E%20)%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%202.%20Problem%3A%20Gel%C3%B6schte%20Zeilen%20m%C3%BCssen%20ein%20Vielfaches%20von%204%20sein%2C%20da%20jedes%20Ger%C3%A4t%20viermal%20getestet%20wird.%3CBR%20%2F%3E%20Ich%20bin%20mir%20nicht%20ganz%20sicher%2C%20wie%20ich%20das%20machen%20soll%3C%2FSELECT%3E%3C%2FP%3E%3CP%3EIch%20w%C3%BCrde%20mich%20sehr%20%C3%BCber%20Ihre%20Hilfe%20hierzu%20freuen%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EDanke%3CBR%20%2F%3E%20new_2_JMP%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-83902%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EBetreff%3A%20Zeilen%20mit%20einem%20oder%20mehreren%20leeren%20Werten%20mithilfe%20von%20JSL%20entfernen%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-83902%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EWenn%20Sie%20nur%20eine%20einzelne%20Zelle%20%C3%BCberpr%C3%BCfen%3A%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3Eif%20(%20Is%20Missing(%20Column(%20dt%2C%22Value%22%20)%5B7%5D%20)%2C%0A%20dt%20%26lt%3B%26lt%3B%20delete%20rows(%5B7%5D)%3B%0A)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-83836%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EBetreff%3A%20Zeilen%20mit%20einem%20oder%20mehreren%20leeren%20Werten%20mithilfe%20von%20JSL%20entfernen%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-83836%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EIhr%20Code%20pr%C3%BCft%20nur%20Zeile%207.%20Sie%20m%C3%BCssen%20jede%20Zeile%20testen%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3Edt%20%26lt%3B%26lt%3B%20select%20where(%20Is%20Missing(%20Column(%20dt%2C%22weight%22%20)%5Brow()%5D%20)%20)%20%26lt%3B%26lt%3B%20delete%20rows%3B%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-83827%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EBetreff%3A%20Zeilen%20mit%20einem%20oder%20mehreren%20leeren%20Werten%20mithilfe%20von%20JSL%20entfernen%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-83827%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EHallo%2C%3C%2FP%3E%3CP%3EIch%20versuche%2C%20ein%20wenig%20das%20Gleiche%20zu%20tun.%3C%2FP%3E%3CP%3EIch%20muss%20pr%C3%BCfen%2C%20ob%20eine%20Zelle%20leer%20ist%2C%20und%20dann%20die%20Zeile%20l%C3%B6schen%2C%20wenn%20ja.%3C%2FP%3E%3CP%3EIch%20habe%20Folgendes%20versucht%3A%3C%2FP%3E%3CP%3Edt%20%26lt%3B%26lt%3B%20select%20where(%20Is%20Missing(%20Column(%20dt%2C%22Value%22%20)%5B7%5D%20)%20)%20%26lt%3B%26lt%3B%20delete%20rows%3B%3C%2FP%3E%3CP%3EEs%20werden%20jedoch%20alle%20Zeilen%20in%20der%20Tabelle%20gel%C3%B6scht.%3C%2FP%3E%3CP%3EAuf%20der%20Suche%20nach%20Ideen.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-67360%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EBetreff%3A%20Zeilen%20mit%20einem%20oder%20mehreren%20leeren%20Werten%20mithilfe%20von%20JSL%20entfernen%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-67360%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3ETolle%20Diskussion.%20Wir%20hatten%20ein%20%C3%A4hnliches%20Problem%2C%20bei%20dem%20wir%20beim%20Importieren%20von%20Sensordateien%20viele%20leere%20Zeilen%20am%20Ende%20der%20Datei%20hatten.%20Wir%20wollten%20Zeilen%20entfernen%2C%20in%20denen%20sich%20keine%20Sensordaten%20befanden.%20Ich%20wollte%20jedoch%20keine%20Zeilen%20entfernen%2C%20in%20denen%20noch%20einige%20Informationen%20vorhanden%20waren.Das%20Folgende%20wurde%20in%20JMP14%20geschrieben%2C%20geht%20aber%20davon%20aus%2C%20dass%20es%20f%C3%BCr%20fr%C3%BChere%20Versionen%20funktionieren%20wird.%20Ich%20wei%C3%9F%2C%20dass%20es%20in%20JMP14%20Zeilenauswahl%20%26gt%3B%20Doppelte%20Zeilen%20ausw%C3%A4hlen%20gibt.%20Es%20konnte%20jedoch%20keine%20%C3%A4hnliche%20Funktion%20gefunden%20werden%2C%20die%20alle%20numerischen%20Spalten%20in%20einer%20Zeile%20summiert.%20Im%20folgenden%20Skript%20w%C3%BCrde%20Sum()%20in%20der%20gesamten%20Zeile%20der%20Matrix%20null%20zur%C3%BCckgeben%2C%20aber%20ich%20wollte%20eine%20Null.%20Es%20wurde%20festgestellt%2C%20dass%20die%20Ausgabe%20von%20V%20Sum()%20f%C3%BCr%20alle%20Nullen%200%20zur%C3%BCckgibt.%20Damit%20es%20funktioniert%2C%20musste%20lediglich%20der%20Zeilenvektor%20in%20einen%20Spaltenvektor%20transponiert%20werden.Dies%20funktioniert%20unabh%C3%A4ngig%20davon%2C%20wie%20viele%20numerische%20Spalten%20Sie%20haben%2C%20solange%20diese%20alle%20leer%20sind.%20Bin%20immer%20noch%20interessiert%2C%20ob%20jemand%20eine%20bessere%20L%C3%B6sung%20hat.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3Edt%20%3D%20Current%20Data%20Table()%3B%0A%0A%2F%2F%20Get%20all%20numeric%20data%0A%0Am%20%3D%20dt%20%26lt%3B%26lt%3B%20Get%20As%20Matrix%3B%0A%0A%2F%2F%20for%20each%20row%2C%20test%20if%20the%20V%20Sum%20is%200%20or%20non-zero%0A%2F%2F%20V%20Sum%20returns%200%20for%20all%20null%0A%2F%2F%20Sum()%20returns%20null%20for%20all%20null%0A%0Arowlist%20%3D%20%7B%7D%3B%0A%0AFor(i%3D%20N%20Rows(m)%2C%20i%26gt%3B%3D1%2Ci--%2C%0A%20If(V%20Sum(Transpose(m%5Bi%2C0%5D))%5B1%5D%20%3D%3D%200%2C%0A%20%20Insert%20Into(rowlist%2Ci)%0A%20)%0A)%3B%0Adt%20%26lt%3B%26lt%3B%20Delete%20Rows(rowlist)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-4890%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EBetreff%3A%20Zeilen%20mit%20einem%20oder%20mehreren%20leeren%20Werten%20mithilfe%20von%20JSL%20entfernen%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-4890%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EDie%20Verwendung%20des%20Verkettungsoperators%20war%20ein%20%C3%9Cbertragungsfehler%20%E2%80%93%20alte%20Gewohnheiten%20lassen%20sich%20nur%20schwer%20aussterben.%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3EEs%20stellte%20sich%20heraus%2C%20dass%20das%20Problem%20darin%20lag%2C%20dass%20meine%20Spaltennamen%2C%20die%20eigentlich%20%E2%80%9E88%E2%80%9C%2C%20%E2%80%9E95%E2%80%9C%20und%20%E2%80%9E105%E2%80%9C%20waren%2C%20alle%20Zeilen%20mit%20Is%20Missing(%3A88)%20ausgew%C3%A4hlt%20haben.%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CPRE%20__default_attr%3D%22javascript%22%20__jive_macro_name%3D%22code%22%20class%3D%22jive_text_macro%20jive_macro_code%20_jivemacro_uid_13371834740247051%22%20jivemacro_uid%3D%22_13371834740247051%22%20modifiedtitle%3D%22true%22%3E%3CBR%20%2F%3E%3CP%3Edtsplit%20%26lt%3B%26lt%3B%20Select%20Where(Is%20missing(%3AName(%22T1%22))%20%7C%20Is%20missing(%3AName(%22T2%22))%20%7C%20is%20missing(%3AName(%22T3%22)))%20%26lt%3B%26lt%3B%20Delete%20Rows%3B%3C%2FP%3E%3CBR%20%2F%3E%3C%2FPRE%3E%3CP%3E%3C%2FP%3E%3CP%3EFunktioniert%20super.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-4889%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EBetreff%3A%20Zeilen%20mit%20einem%20oder%20mehreren%20leeren%20Werten%20mithilfe%20von%20JSL%20entfernen%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-4889%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3ESie%20haben%20den%20String-Verkettungsoperator%20%7C%7C%20verwendet%20anstelle%20des%20OR-Operators%20%7C.Wie%20MS%20gezeigt%20hat%2C%20m%C3%BCssen%20Sie%20die%20Funktion%20%E2%80%9EIst%20fehlt%E2%80%9C%20und%20nicht%20%E2%80%9EIst%20leer%E2%80%9C%20verwenden.Ihr%20Code%20wird%20zu%3A%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3Edtsplit%20%26lt%3B%26lt%3B%20Select%20Where(Is%20missing(%3AT1)%20%7C%20Is%20missing(%3AT2)%20%7C%20is%20missing(%3AT3))%20%26lt%3B%26lt%3B%20Delete%20Rows%3B%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-4888%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EBetreff%3A%20Zeilen%20mit%20einem%20oder%20mehreren%20leeren%20Werten%20mithilfe%20von%20JSL%20entfernen%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-4888%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EEntschuldigung%2C%20ich%20habe%20die%20JMP9-Anforderung%20verpasst.%20Die%20Funktion%20Loc%20Nonmissing()%20scheint%20in%20JMP%2010%20neu%20zu%20sein%2C%20sodass%20die%20oben%20genannten%20Funktionen%20in%20JMP%209%20nicht%20funktionieren.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EHier%20ist%20ein%20alternativer%20Ansatz%2C%20der%20in%20JMP%209%20funktioniert%20und%20Ihrem%20Code%20%C3%A4hnelt%2C%20jedoch%20eine%20Schleife%20verwendet.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%20style%3D%22margin%3A%200.0px%200.0px%200.0px%200.0px%3B%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3EFor(%20i%20%3D%202%2C%20i%20%26lt%3B%3D%204%2C%20i%2B%2B%2C%0A%20%20dtSplit%20%26lt%3B%26lt%3B%20select%20where(%20Is%20Missing(%20Column(%20i%20)%5B%5D%20)%20)%20%26lt%3B%26lt%3B%20delete%20rows%0A)%3B%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%20style%3D%22margin%3A%200.0px%200.0px%200.0px%200.0px%3B%22%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-4887%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EBetreff%3A%20Zeilen%20mit%20einem%20oder%20mehreren%20leeren%20Werten%20mithilfe%20von%20JSL%20entfernen%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-4887%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EDies%20kann%20auf%20unterschiedliche%20Weise%20erreicht%20werden.%20F%C3%BCr%20numerische%20Spalten%20sind%20h%C3%A4ufig%20Matrixfunktionen%20wirksam.%3C%2FP%3E%0A%3CP%3EHier%20ist%20ein%20Beispiel%20f%C3%BCr%20das%20L%C3%B6schen%20aller%20Zeilen%20mit%20fehlenden%20Zellen%20in%20den%20Spalten%202%2C%203%20und%204%3A%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3Ekeeprows%20%3D%20Loc%20Nonmissing(%20dtSplit%20%26lt%3B%26lt%3B%20get%20as%20matrix(%20%7B2%2C%203%2C%204%7D%20)%20)%3B%0AdtSplit%20%26lt%3B%26lt%3B%20select%20rows(%20keeprows%20)%20%26lt%3B%26lt%3B%20invert%20Row%20Selection%20%26lt%3B%26lt%3B%20delete%20rows%3B%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%20style%3D%22margin%3A%200.0px%200.0px%200.0px%200.0px%3B%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EHier%20ist%20ein%20alternativer%20Ansatz%2C%20der%20eine%20Teilmenge%20der%20Spalten%20ohne%20fehlende%20Zellen%20erstellt%20(wobei%20die%20urspr%C3%BCngliche%20Tabelle%20unver%C3%A4ndert%20bleibt)%3A%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3EdtClean%20%3D%20dtSplit%20%26lt%3B%26lt%3B%20Clear%20Column%20Selection()%20%26lt%3B%26lt%3B%20subset(%20rows(%20Loc%20Nonmissing(%20dt%20%26lt%3B%26lt%3B%20get%20as%20matrix(%20%7B2%2C%203%2C%204%7D%20)%20)%20)%20)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-869260%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EBetreff%3A%20Entfernen%20Sie%20Zeilen%20mit%20einem%20oder%20mehreren%20leeren%20Werten%20mithilfe%20von%20JSL%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-869260%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EDieses%20Skript%20beginnt%20nach%20der%20Spalte%20mit%20dem%20Titel%20%E2%80%9ENamen%E2%80%9C%20mit%20der%20Arbeit%20und%20f%C3%A4hrt%20bis%20zum%20Ende%20der%20Tabelle%20fort%2C%20wobei%20leere%20Zeilen%20gel%C3%B6scht%20werden.%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3E%2F%2F%20Get%20the%20current%20data%20table%0Adt%20%3D%20Current%20Data%20Table()%3B%0A%0A%2F%2F%20Get%20all%20column%20names%20as%20strings%0Acnmes%20%3D%20dt%20%26lt%3B%26lt%3B%20Get%20Column%20Names(%22string%22)%3B%0A%0A%2F%2F%20Initialize%20Start%20and%20End%20indices%0AStart%20%3D%20.%3B%0AEnd%20%3D%20N%20Items(cnmes)%3B%0A%0A%2F%2F%20Find%20the%20index%20of%20the%20%22Device%202%22%20column%0AFor(k%20%3D%201%2C%20k%20%26lt%3B%3D%20N%20Items(cnmes)%2C%20k%2B%2B%2C%0A%20%20%20%20If(Contains(cnmes%5Bk%5D%2C%20%22Names%22)%2C%0A%20%20%20%20%20%20%20%20Start%20%3D%20k%20%2B%201%3B%0A%20%20%20%20%20%20%20%20Break()%3B%20%2F%2F%20Exit%20loop%20once%20found%0A%20%20%20%20)%3B%0A)%3B%0A%0A%2F%2F%20Loop%20through%20the%20columns%20from%20Start%20to%20End%20and%20delete%20rows%20with%20missing%20values%0AFor(i%20%3D%20Start%2C%20i%20%26lt%3B%3D%20End%2C%20i%2B%2B%2C%0A%20%20%20%20dt%20%26lt%3B%26lt%3B%20Select%20Where(Is%20Missing(Column(i)%5B%5D))%20%26lt%3B%26lt%3B%20Delete%20Rows%3B%0A)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E
Choose Language Hide Translation Bar
mwyant
Level I

Remove rows with one or more empty values using JSL

I have a table where each row contains a single measurement type at three temperatures, each stored in its own column. Ultimately, I want to calculate the deltas between these measurements and then stack that data into a new table. However, not all measurements are taken at all three temperatures, and I need to exclude those measurements (rows) where one or more of the data columns are empty. I need to do this using a JMP 9.0 script.

Given:

dtSplit =

MeasurementT1T2T3
Measurement A51289
Measurement B138
Measurement C5257
Measurement D2221
Measurement E8
Measurement F15
Measurement G54

I need to produce:

dtClean =

MeasurementT1T2T3
Measurement A51289

I was trying to use something like:

dtSplit << Select Where(
     Is Empty(:T1) ||
     Is Empty(:T2) ||
     is Empty(:T3)
) << Delete Rows;

However, any Select Where(Is Empty(:COL)) always selects all rows.

I'm sure I am missing something simple, your help is greatly appreciated, thanks,

- Matt

12 REPLIES 12
txnelson
Super User

Re: Remove rows with one or more empty values using JSL

You need to look into the Missing Data Pattern platform.  It will allow you to identify all of the rows that have all missing values, and then you can choose to delete the rows, etc.

      Tables==>Missing Data Pattern

Jim
new_2_JMP
Level I

Re: Remove rows with one or more empty values using JSL

Hi

Thanks for the input. Checked out the Missing  Data Pattern you recommended and it sort of works but not fully. 

In my data table, each name has 4 different rows. Each of the 4 row of a name is a result of 1 test (sens, mask, EVM and power)

In my data table example, device A fails the first test "Sens" and passes the 2nd, 3rd and 4th test. Because device A fails "Sens", this is a fail device even though it passes the 2nd, 3rd and 4th test. 

If I use Tables==>Missing Data Pattern, then 2nd, 3rd and 4th rows of A will be deleted. Which is not what I am looking for. I want to delete 4 rows of each name when there are no data on them ( no data on 10 MHz, 20 MHz, 30 MHz and 1000 MHz). In my data table, names C, G, H, I, J K and N will be deleted.

 

Thanks for your helps

 

 

 

SpannerHead
Level VI

Re: Remove rows with one or more empty values using JSL

This script will start working after the column titled "Names" and continue to the end of the table deleting empty rows.

 

// Get the current data table
dt = Current Data Table();

// Get all column names as strings
cnmes = dt << Get Column Names("string");

// Initialize Start and End indices
Start = .;
End = N Items(cnmes);

// Find the index of the "Device 2" column
For(k = 1, k <= N Items(cnmes), k++,
    If(Contains(cnmes[k], "Names"),
        Start = k + 1;
        Break(); // Exit loop once found
    );
);

// Loop through the columns from Start to End and delete rows with missing values
For(i = Start, i <= End, i++,
    dt << Select Where(Is Missing(Column(i)[])) << Delete Rows;
);

Slán



SpannerHead

Recommended Articles