Fehler bei der Verwendung von „Verketten/Anhängen“ bei Tabellen mit Spalten mit Listenprüfung<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />// Dieser Code zeigt den Fehler.Die Verkettung mit „An erste Tabelle anhängen“ führt zu Datenbeschädigung.
dtA = neue Tabelle("A");
dtB = neue Tabelle("B");
dtA << Zeilen hinzufügen(3);
dtB << Zeilen hinzufügen(1);
colA = Spalte(dtA, 1);
colB = Column(dtB, 1);
colA[1]="A";
colA[2]="A";
colA[3]="C";
colB[1]="B";
dtA << Ausgewählte Spalten komprimieren(dtA << Spaltennamen abrufen());
// Für diese Daten gibt es keine Listenprüfung, sie sind jedoch nicht beschädigt
(dtA << Concatenate(dtB)) << Set Name("Not Corrupted");
// Diese Daten sind beschädigt
dtA << Concatenate(dtB, Append To First Table(1)) << Set Name("Corrupted");
Betreff: Fehler bei der Verwendung von „Verketten/Anhängen“ bei Tabellen mit Spalten mit ListenprüfungOk, danke Martin für den Rat, wie man das auf den Radar des Entwicklerteams bringt ...
- Bob
Betreff: Fehler bei der Verwendung von „Verketten/Anhängen“ bei Tabellen mit Spalten mit ListenprüfungHallo Bob,
Entschuldigung für die späte Antwort, war bei Kundenbesuchen unterwegs.
Ich verstehe Ihre Sichtweise. Gleichzeitig denke ich, dass es nur wenige Möglichkeiten gibt, dies zu verhindern. Ich werde versuchen zu erklären, warum. Bei der Komprimierung wird eine Listenprüfung mit den Werten angestoßen, die sich zum Zeitpunkt der Komprimierung in den Spalten befinden. Nehmen wir an, dass keine Komprimierung stattgefunden hat und Sie selbst eine Listenprüfung erstellen. Der Zweck einer Listenprüfung besteht darin, dass Sie nur zulassen, dass sich diese Werte in dieser Spalte befinden. Andere sagten, Sie möchten keine anderen Werte als diese haben.
Egal, ob Sie mit der Listenprüfung andere Tabellen mit dem Original verketten oder einfach neue Beobachtungen in diese Tabelle eingeben, es werden nur diese Werte zugelassen, da es davon ausgeht, dass Sie diese Regeln absichtlich festgelegt haben, und ich möchte nicht, dass Software gegen meine arbeitet festgelegten Regeln.
Allerdings liegt es in der Verantwortung des Regelherstellers, die Regeln zu ändern, wenn die Eingabe anderer Werte zulässig sein muss.
Das heißt, und ich bin mir sicher, dass Sie das oben Gesagte bereits verstanden haben, es ist beabsichtigtes Verhalten, wenn auch nicht genau das, was Ihnen gefällt.
Ich würde vorschlagen, dass Sie an unseren technischen Support schreiben ( support@jmp.com ), um eine Erweiterungsanforderung zum Hinzufügen eines Fragedialogs hinzuzufügen, falls eine Liste überprüfter (oder komprimierter) Datentabellen mit einer neuen Tabelle unter Verwendung des Flags „An Originaltabelle anhängen“ verkettet werden soll. Der Dialog könnte etw. sagen. etwa so: „In der Originaltabelle gibt es eine aktive Listenprüfung. Ihre zu verkettende Tabelle enthält Werte, die dort nicht aufgeführt sind. Diese Werte werden nach der Verkettung in fehlende Werte umgewandelt. Möchten Sie trotzdem nicht verketten? (Wenn nicht, müssen Sie zuerst die Eigenschaften der Listenprüfung ändern)“ – oder etwas kürzeres
Um dies zu umgehen, haben Sie zwei Möglichkeiten: Erstellen Sie zunächst eine neue Tabelle, die Sie anschließend komprimieren (möglicherweise möchten Sie, dass die Datentabelle „unsichtbar“ bleibt, bis die Komprimierung abgeschlossen ist). Oder zweitens, um die Listenprüfungseigenschaft im Voraus zu ändern oder zu entfernen.
Hoffentlich hilft das,
Martin
Betreff: Fehler bei der Verwendung von „Verketten/Anhängen“ bei Tabellen mit Spalten mit ListenprüfungEntschuldigung, ich wollte nicht über das Wort „korrupt“ streiten, ich wollte auch nicht abtun, was Sie für einen Fehler halten.
Ich habe versucht zu erklären, was Sie haben. Wenn Sie die Listenprüfungseigenschaft aus der Spalte entfernen, funktioniert das Anhängen wie erwartet.
Es war die List-Check-Eigenschaft, die die Verwirrung zu verursachen scheint.
Per Definition besagt die Listenprüfeigenschaft, dass nur die Werte in der Listenprüftabelle gültig sind.
Wenn Sie der Spalte einen Wert hinzufügen oder ihn in einen Wert ändern, der nicht in der Listenprüftabelle enthalten ist, wird er auf „fehlend“ gesetzt.
Betreff: Fehler bei der Verwendung von „Verketten/Anhängen“ bei Tabellen mit Spalten mit ListenprüfungICH Wirklich Ich verstehe nicht, warum es Sinn macht, über die Semantik des Wortes „korrupt“ zu streiten.Ist die resultierende Datentabelle eine gültige Verkettung der beiden ursprünglichen Datentabellen?Das ist es eindeutig nicht.Trotz ordnungsgemäßer Nutzung der JMP-Funktionen wurden Datensätze geändert.Die Tatsache, dass „Concatate WITH WITH Append to First Table“ ein anderes (korrektes) Ergebnis liefert als „Concatenate WITH Append to First Table“, sollte Sie beunruhigen.Die Tatsache, dass ein Kunde Ihnen mitteilt, dass ein Fehler vorliegt, sollte Sie ebenfalls beunruhigen ...
Danke,
- Bob
Betreff: Fehler bei der Verwendung von „Verketten/Anhängen“ bei Tabellen mit Spalten mit ListenprüfungWie Martin sagte, ist die Datentabelle nicht „beschädigt“.
Ich gehe davon aus, dass Sie meinen, dass die resultierende Datentabelle nicht Ihren Erwartungen entspricht. Sie haben erwartet, dass „B“ die Daten für die 4. Zeile sind.
Wenn Sie sich die generierte Listenprüfungseigenschaft ansehen, gibt es zwei Werte: „A“ und „C“.
Per Definition sind nur „A“ und „C“ gültige Daten für die Spalte.
Da „B“ kein gültiger Wert ist, wurde er auf „fehlend“ abgebildet.
Compress generiert die Listenprüftabelle basierend auf den ihm aktuell bekannten Informationen.
Vielleicht sollte Concat intelligenter sein und die Listenprüftabelle erweitern.
Alternativ können Sie die Listenprüfungseigenschaft vollständig entfernen, wenn nicht alle zu verkettenden Spalten über dieselbe Listenprüfungseigenschaft verfügen.
Betreff: Fehler bei der Verwendung von „Verketten/Anhängen“ bei Tabellen mit Spalten mit ListenprüfungMartin,
Vielen Dank, dass Sie sich das angesehen haben.Das fehlende „B“ IST die Datenkorruption.JMP hat einen Wert (leere Zeichenfolge) eingeführt, der vor der Verkettung nicht vorhanden war, und einen Wert („B“) gelöscht, der vor der Verkettung vorhanden war.Die Tabelle ist also keine gültige Verkettung der beiden Originaltabellen.Wenn dies eine kritische Geschäftsanwendung wäre, würde JMP einen Fehler einschleusen, oder?
Ich verstehe, wie es passiert, aber JMP sollte die erforderlichen Elemente in der Listenprüfung neu bewerten, um sicherzustellen, dass der verkettete Datensatz keine Daten verliert/ändert.
Danke,
- Bob
Betreff: Fehler bei der Verwendung von „Verketten/Anhängen“ bei Tabellen mit Spalten mit ListenprüfungHallo Robert,
Ich habe Ihren Scrit ausprobiert und sehe keine Datenbeschädigung. Ich sehe nur, dass es in dtA eine vierte Zeile gibt, in der wegen der Listenprüfung kein Eintrag vorhanden ist. Wenn Sie das Menü „Datentabelle“ -> „Verketten“ verwenden und dann Tabelle A und B sowie das Kontrollkästchen „An erste Tabelle anhängen“ aktiviert haben UND die Option „Datenquellenspalte“ aktivieren, werden Sie sehen, dass die Daten aus Tabelle B vorhanden sind , aber wegen der Listenprüfung, die aufgrund der Komprimierung eingeführt wird, nicht eingetragen.

Wenn das nicht das ist, was Sie meinen, da ich jetzt keinen beschädigten Datensatz habe (und ich würde verstehen, dass der Datensatz beschädigt und nicht mehr lesbar ist), helfen Sie mir bitte, Ihr Problem zu verstehen. Wenn Sie wirklich eine beschädigte Datentabelle erhalten, die Sie nicht mehr öffnen können, senden Sie Ihre Frage bitte an unseren technischen Support, damit diese auch für unsere Entwicklung nachverfolgt wird. Wir hoffen, dass er Ihnen bei der Suche nach der Ursache helfen kann ( Support@jmp.com ).
Übrigens. Ich habe JMP 12.1 verwendet.
Grüße,
Martin