Ho un set di dati proveniente da un file .pkd con più colonne di risposta con etichette di valore. A seconda di come faccio riferimento alla colonna, ottengo risultati diversi.
Show( Column( 101 ) << get property( "value labels" ) );
Show( Column( 101 ) << get name );
Show( Column( :name( "TestMR" ) ) << get property( "value labels" ) );
//results
Column(101) << get property("value labels") = Value Labels({"10" = "A", "100" = "B", "101" = "C"});
Column(101) << get name = "TestMR";
Column(:TestMR) << get property("value labels") = Value Labels({-2 = "Not at all Important (-2)", -1 = "Not Important (-1)", 0 = "Neither Important nor Unimportant (0)", 1 = "Important (1)", 2 = "Effective Base Used For Stat Testing Weighted Data", 9 = "Not answer"});L'errore che hai ricevuto sopra è perché la funzione Column () prende un numero di colonna o un nome come stringa quotata, quindi non puoi usare: TestMR nella funzione Column ().
Il fatto che tu abbia due diversi tipi di modelli è molto interessante e ti fa sembrare che ti stia riferendo a due colonne diverse.
Abbiamo bisogno di guardare le colonne a cui si riferisce:
Column(dt, 101);
//and
Column(dt, "TestMR");
Quindi, proviamo qualcosa come questo:
column(dt, 101)<<SET selected=""></SET>
Quindi guarda le due tabelle sottoinsieme e vedi se è la stessa colonna.
Nell'impegno di creare un file sottoposto a correzione che posso pubblicare, ho finito per scrivere facendo quanto segue e ho più domande che risposte ora:
dt = Current Data Table();
Show( Column( dt, 101 ) << get modeling type );
Show( Column( dt, "TestMR" ) << get modeling type );
Show( Column( dt, :name("TestMR") ) << get modeling type );
For( a = 1, a <= 550, a++,
If( a != 101,
a1 = Random Integer( 26 );
a2 = Random Integer( 26 );
a3 = Random Integer( 26 );
a4 = Random Integer( 26 );
a5 = Random Integer( 26 );
a6 = Random Integer( 26 );
a7 = Random Integer( 26 );
a8 = Random Integer( 26 );
alpha = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W",
"X", "Y", "Z"};
temp = alpha[a1] || alpha[a2] || alpha[a3] || alpha[a4] || alpha[a5] || alpha[a6] || alpha[a7] || alpha[a8];
Column(dt, a ) << set name( temp );
)
);
Show( Column( dt, 101 ) << get modeling type );
Show( Column( dt, "TestMR" ) << get modeling type );
Show( Column( dt, :name("TestMR") ) << get modeling type );e ho capito
Column(dt, 101) << get modeling type = "Multiple Response";
Column(dt, "TestMR") << get modeling type = "Multiple Response";
Column(dt, :TestMR) << get modeling type = "Ordinal";
Column(dt, 101) << get modeling type = "Multiple Response";
Column(dt, "TestMR") << get modeling type = "Multiple Response";
could not find column in access or evaluation of 'Column' , Column/*###*/(dt, :TestMR)
In the following script, error marked by /*###*/
dt = Current Data Table();
Show( Column( dt, 101 ) << get modeling type );
Show( Column( dt, "TestMR" ) << get modeling type );
Show( Column( dt, :TestMR ) << get modeling type );
For( a = 1, a <= 550, a++,
If( a != 101,
a1 = Random Integer( 26 );
a2 = Random Integer( 26 );
a3 = Random Integer( 26 );
a4 = Random Integer( 26 );
a5 = Random Integer( 26 );
a6 = Random Integer( 26 );
a7 = Random Integer( 26 );
a8 = Random Integer( 26 );
alpha = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M",
"N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"};
temp = alpha[a1] || alpha[a2] || alpha[a3] || alpha[a4] || alpha[a5] ||
alpha[a6] || alpha[a7] || alpha[a8];
Column( dt, a ) << set name( temp );
)
);
Show( Column( dt, 101 ) << get modeling type );
Show( Column( dt, "TestMR" ) << get modeling type );
Show( Column/*###*/(dt, :TestMR) << get modeling type );Ho controllato che la colonna fosse ancora denominata "TestMR". Provato a modificarlo e tornare indietro, non cambia ancora. Sembra esserci qualcosa nell'usare la sintassi di ": name ()" ma non riesco a capirlo
Solo 1 tabella dati aperta e codificata in una tabella dati dt = corrente (). Interessante quando eseguo l'ultimo bit del tuo codice ottengo due diversi tipi di modellazione
Column(dt, 101) << get modeling type = "Multiple Response";
Column(dt, :TestMR) << get modeling type = "Ordinal";
È difficile distinguere dal tuo snippet di codice, ma supponiamo che tu non stia facendo riferimento alla stessa tabella di dati in ciascun caso.
Hai più di una tabella di dati aperta?
Prova a eseguire lo scoping di entrambi i riferimenti per assicurarti di riceverli dalla stessa tabella di dati.
dt1=open("$SAMPLE_DATA\Big Class.jmp");
dt2=open("$SAMPLE_DATA\Fitness.jmp");
show(column(dt1,2)<<GET name=""></GET>