Wie kann ich über ein Skript einen Zellenwert auf „fehlend“ setzen?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich habe ein Skript, mit dem ich Datenpunkte außerhalb der Familie aus großen numerischen Datensätzen entferne.Wenn ein Wert gefunden wurde, der außerhalb einer definierten Verteilung lag, wurde dieser Wert mithilfe des Codes „columnReference[specialCell] =“ auf „fehlend“ gesetzt.
Früher habe ich gut funktioniert, aber jetzt scheint es dem Skript nicht zu gefallen, dass ich den Zellenwert auf „“ setze. Irgendwelche Vorschläge, wie ich einen Zellenwert auf „fehlend“ setzen kann?
Betreff: Wie kann ich über ein Skript einen Zellenwert auf „fehlend“ setzen?Ich entnehme diesem Thread, dass Sie solche Operationen gerne programmgesteuert ausführen würden. Es ist schwierig, allgemeine Richtlinien zu geben, da es so viele Möglichkeiten gibt. Wenn Ihnen die Effizienz wirklich am Herzen liegt, können Sie ein Profil Ihres Codes erstellen, um festzustellen, wo die Engpässe liegen:
http://www.jmp.com/support/help/Debug_or_Profile_Scripts.shtml
Im speziellen Fall des Ersetzens von 0 durch „fehlend“ können Sie Folgendes tun, wenn alle Spalten in Ihrer Datentabelle (dt) numerisch fortlaufend sind:
m = dt << GetAsMatrix;
m[Loc(m == 0) ] = .;
dt2 = AsTable(m);
Dann müssten Sie natürlich die Spaltennamen und Eigenschaften in dt2 korrigieren.
Betreff: Wie kann ich über ein Skript einen Zellenwert auf „fehlend“ setzen?Hat jemand eine Empfehlung, welcher Ansatz zur Ausführung einiger dieser Arten von Datenbereinigungsvorgängen die beste Leistung bringt?
Es scheint, dass es eine ganze Reihe von Möglichkeiten gibt, diese Ersetzungen durchzuführen, aber bei großen Datensätzen kann es wichtig sein, die schnellste auszuwählen.
Ich habe den Ansatz mit mehreren Indizes für einen Datensatz mit 10.000 Spalten und 750 Zeilen verwendet und es dauerte mehrere Minuten, 0 durch „missing“ zu ersetzen.
Betreff: Wie kann ich über ein Skript einen Zellenwert auf „fehlend“ setzen?Benutz einfach:
„columnReference[specialCell] = empty()“
Betreff: Wie kann ich über ein Skript einen Zellenwert auf „fehlend“ setzen?Übrigens müssen Sie die Zielzeilen nicht explizit durchlaufen. Sie können ihnen mithilfe der Mehrfachindizes auf einfache und gleichzeitige Weise das Fehlende zuordnen:
cleaningColumnRef[badDataPoints] = . ;
Betreff: Wie kann ich über ein Skript einen Zellenwert auf „fehlend“ setzen?Sie können versuchen, einen manuellen Löschvorgang mit dem nachzuahmen MainMenu("Löschen") Befehl. Eine Warnung: Speichern Sie Ihre Dateien, bevor Sie sie ausführen, da bei einem erzwungenen „manuellen“ Löschen alles gelöscht wird, was im Frontfenster ausgewählt ist.
Beispiel mit Ihrer Terminologie, aber ohne Schleife:
dt = Offen ( „$SAMPLE_DATA/Big Class.jmp“ ) ;
badDataPoints = [ 1 , 10 ] ;
cleaningColumnRef = Spalte ( "Höhe" ) ;
dt << Gehe zu ( cleaningColumnRef ) ;
dt << Zeilen auswählen ( badDataPoints ) ;
dt << Bringen Sie das Fenster nach vorne ;
Hauptmenü ( "Löschen" ) ;
Betreff: Wie kann ich über ein Skript einen Zellenwert auf „fehlend“ setzen?Ich habe noch einmal überprüft, ob die Spalte gesperrt ist oder den falschen Datentyp hat.
Danke für die Rückmeldung.Zu den von mir analysierten Daten wurde ein Fähigkeitsbericht hinzugefügt.Da dies auf die Datentabelle verwies, war es mir vermutlich nicht möglich, einzelne Zellen über ein Skript zu löschen.Es ermöglicht mir jedoch, die fehlerhaften Datenpunkte manuell zu löschen.Wenn ich den Fähigkeitsbericht schließe, funktioniert mein Skript wieder.
Anscheinend sollte es eine Skriptfunktion geben, die es mir ermöglicht, die Daten zu löschen, obwohl der Fähigkeitsbericht geöffnet ist, da ich das manuell tun kann.
Betreff: Wie kann ich über ein Skript einen Zellenwert auf „fehlend“ setzen?Das einzige Feedback, das ich aus dem Protokoll bekomme, ist das Folgende.
For( badPt = 1, badPt <= N Row( badDataPoints ), badPt++,
cleaningColumnRef[badDataPoints[badPt]] = /*###*/. /*###*/
);
Betreff: Wie kann ich über ein Skript einen Zellenwert auf „fehlend“ setzen?Es sollte einfach sein, einer Zelle einen fehlenden Wert zuzuweisen.
Möglicherweise wurde die Spalte gesperrt, mit einer Formeleigenschaft versehen oder auf den Datentyp „Zeichen“ festgelegt?
Betreff: Wie kann ich über ein Skript einen Zellenwert auf „fehlend“ setzen?Es fühlt sich an, als hätte sich in Ihrem Code noch etwas anderes geändert. Das funktioniert zum Beispiel:
dt = Offen ( „$SAMPLE_DATA/Big Class.jmp“ ) ;
hVals = Spalte ( dt , "Höhe" ) << getValues ;
hVals [ Ort ( hVals > 60 )] = . ;
Spalte ( dt , "Höhe" ) << setValues ( hVals ) ;
Welchen Fehler sehen Sie?