Wie konvertiere ich Spaltenwertbeschriftungen in Werte?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo,
Ich bin neu in der Community (nutze JMP aber seit Version 1) und weiß daher nicht, wo ich diese Frage stellen soll.
Habe eine Datei aus SPSS (.sav) mit mehreren Spalten mit Wertebeschriftungen importiert. Ich möchte die Wertebeschriftungen (die tatsächliche Namen sind) anstelle der Werte (die Zahlen sind) verwenden. Recode scheint diese Funktion nicht zu haben. Könnte jemand helfen? Vielen Dank im Voraus. Jens
Betreff: Wie konvertiere ich Spaltenwertbeschriftungen in Werte?Vielen Dank an alle, die dabei geholfen haben. Ich war einige Zeit nicht am Computer, arbeite jetzt aber wieder mit JMP. Ich werde die verschiedenen Vorschläge ausprobieren und sehen, welcher für mich am schnellsten ist.
Betreff: Wie konvertiere ich Spaltenwertbeschriftungen in Werte?Eine andere Möglichkeit, die Spalte in eine Beschriftungsspalte umzuwandeln, besteht darin, die Spalte zu kopieren und die Daten in ein Skripteditorfenster (oder ein beliebiges Textfenster) einzufügen. Kopieren Sie dann die Daten aus dem Textfenster. Fügen Sie es in eine neue Zeichenspalte in Ihrer Originaltabelle ein.
Betreff: Wie konvertiere ich Spaltenwertbeschriftungen in Werte?Ich konnte dem Versuch nicht widerstehen, Karens Idee in ein Drehbuch umzusetzen. Erhalten Sie Wertetiketten Gibt einen Ausdruck mit einem Argument zurück: eine Liste von „Zuweisungen“, z. B. 2 = „Nein“. Mir fallen zwei Ansätze ein: Entweder diese (illegalen) Zuweisungen direkt verwenden oder sie, wie Xan vorschlägt, in eine manipulieren Übereinstimmen Ausdruck.
Nachfolgend sind meine Versuche beider Ansätze aufgeführt. Der Match-Ansatz ist hier schneller. Bei großen Tabellen und wenn vielen Werten Beschriftungen fehlen, scheint die Leistung gleichmäßiger zu sein. Der Match-Code kann wahrscheinlich verbessert werden.
open_example_table = Expr(
dt = Open( "$SAMPLE_DATA/CrabSatellites.jmp" );
col = Column( dt, "color" );
col << data type( character );
);
//1
open_example_table;
bt = HP Time();
// Direct assignment code
v = Arg( col << get value labels(), 1 );
For( i = 1, i <= N Items( v ), i++,
col[dt << get rows where( col[] == Arg( v[i], 1 ) )] = Arg( v[i], 2 )
);
// End direct assignment
ht = HP Time();
t1 = ht - bt;
Close( dt, no save );
// 2
open_example_table;
bt = HP Time();
// code for building Match expression by string manipulation
match_expr = Parse(
"Match( col[]," || Substitute( Char( Arg( col << get value labels(), 1 ) ),
"{", "",
"=", ",",
"}", ""
) || ",col[])"
);
For Each Row( col[] = match_expr );
// End Match
ht = HP Time();
t2 = ht - bt;
Show( t1, t2 );
t1 = 1729;
t2 = 1019;
//:*/
Betreff: Wie konvertiere ich Spaltenwertbeschriftungen in Werte?Gute Idee, Karen.
Jens, Es ist nicht einfach, die Etiketten als Daten herauszubringen. Zwei Möglichkeiten fallen mir ein:
- Mit der Skripterstellung können Sie Get Value Labels verwenden und das Ergebnis manuell oder programmgesteuert so manipulieren, dass es dem Match()-Ausdruck ähnelt, den Recode generiert, wenn Sie es als Skript speichern.
- Erstellen Sie eine Tabelle für die Variable und verwenden Sie „In Datentabelle umwandeln“ für das Ergebnis.
Für #2 benötigen Sie eine Möglichkeit, Dinge zuzuordnen, wenn sie nicht in einer sortierten Eins-zu-Eins-Zuordnung vorliegen. Schritte dazu:
- Erstellen Sie eine Kopie der Werte in einer neuen Spalte (ohne Wertebeschriftungen).

- Verwenden Sie Tabulate mit beiden Variablen als Kategoriespalten:


- Verwenden Sie den Tabellarisierungsbefehl „In Datentabelle umwandeln“, um eine neue Tabelle ohne Wertebeschriftungseigenschaften zu erhalten.
- Verwenden Sie „Tabellen“ > „Verbinden“, um die Rohwerte abzugleichen und die neue „beschriftete“ Spalte ohne Wertebeschriftungen zu erhalten.
Betreff: Wie konvertiere ich Spaltenwertbeschriftungen in Werte?Ich denke, was wir gerne hätten (aber derzeit nicht haben), wäre eine „Neukodierung mit Werteetiketten“.Auch ich habe mir diese Funktion von Zeit zu Zeit gewünscht.
Karen
Betreff: Wie konvertiere ich Spaltenwertbeschriftungen in Werte?Wenn Sie über eine Tabelle mit den Codes und ihren Werten verfügen, können Sie mit dem UPDATE-Befehl die entsprechende Wertespalte hinzufügen.
Betreff: Wie konvertiere ich Spaltenwertbeschriftungen in Werte?Hallo, danke für den Tipp. Es gibt mehr als 300 Wertbezeichnungen, die ich manuell in Recode eingeben müsste – ich hoffte, dass es einen intelligenteren Weg gäbe.
Betreff: Wie konvertiere ich Spaltenwertbeschriftungen in Werte?Ändern Sie den Datentyp in „Zeichen“ und verwenden Sie dann „Neu kodieren“.
Betreff: Wie konvertiere ich Spaltenwertbeschriftungen in Werte?Hallo Stanley, danke für deinen Versuch zu helfen.Ich kenne die Funktion von Wertebeschriftungen, aber ich muss 1,2,3-Werte durch „Nein“, „Ja“-Zeichenwerte (z. B. wie in Ihrem Beispiel) ändern oder ersetzen.
Ich muss zwei Tabellen mit übereinstimmenden Spalten verbinden, von denen eine Zeichenwerte enthält (die gleichen wie die Wertebeschriftungen in der anderen Tabelle, dh es wurde keine Codierung verwendet), die andere numerische Werte (Codes) mit Wertebeschriftungen.
Oder gibt es eine Möglichkeit, die Tabellen im Handumdrehen zu verknüpfen, basierend auf den Wertebeschriftungen einer Spalte in einer Tabelle und den tatsächlichen Werten in der entsprechenden Spalte in der anderen Tabelle?
Beste grüße
Jens
Betreff: Wie konvertiere ich Spaltenwertbeschriftungen in Werte?Hallo,
Wenn ich Ihre Frage richtig verstehe.
Sie können die Wertebeschriftungen über die Spalteneigenschaften aktivieren oder deaktivieren.
In diesem Beispiel konnte ich die Verbrauchereinstellungen aus den Beispieldaten verwenden Klicken Sie mit der rechten Maustaste auf die Spalte und deaktivieren Sie die Option „Wertbeschriftung“.

Die Spalte verwendet nicht mehr die unten gezeigte Wertebeschriftung.

Ich hoffe das hilft.
Am besten,
Stan