J'ai un ensemble de données provenant d'un fichier .pkd avec plusieurs colonnes de réponses avec des étiquettes de valeur. En fonction de la référence à la colonne, les résultats sont différents.
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'erreur que vous avez reçue ci-dessus est due au fait que la fonction Column () prend un numéro de colonne ou un nom en tant que chaîne entre guillemets. Vous ne pouvez donc pas utiliser: TestMR dans la fonction Column ().
Le fait que vous obteniez deux types de modélisation différents est très intéressant et donne l’impression que vous faites référence à deux colonnes différentes.
Nous devons examiner les colonnes mentionnées par:
Column(dt, 101);
//and
Column(dt, "TestMR");
Alors, essayons quelque chose comme ceci:
column(dt, 101)<<SET selected=""></SET>
Regardez ensuite les deux tables de sous-ensembles et voyez si c'est la même colonne.
Dans le but de créer un fichier nettoyé que je puisse poster, j'ai fini par écrire comme suit et j'ai maintenant plus de questions que de réponses:
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 );et je reçois
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 );J'ai vérifié que la colonne s'appelle toujours "TestMR". J'ai essayé de le modifier et de revenir en arrière, mais cela ne change toujours pas. Il semble y avoir quelque chose avec l'utilisation de la syntaxe de ": name ()" mais je ne peux pas le comprendre
Une seule table de données ouverte et codée dans un tableau de données dt = current (). Intéressant quand je lance le dernier bit de votre code, je reçois deux types de modélisation différents
Column(dt, 101) << get modeling type = "Multiple Response";
Column(dt, :TestMR) << get modeling type = "Ordinal";
Il est difficile de dire à partir de votre extrait de code, mais on suppose que vous ne faites pas référence à la même table de données dans chaque cas.
Avez-vous plusieurs tables de données ouvertes?
Essayez de cibler les deux références pour vous assurer qu'elles proviennent du même tableau de données.
dt1=open("$SAMPLE_DATA\Big Class.jmp");
dt2=open("$SAMPLE_DATA\Fitness.jmp");
show(column(dt1,2)<<GET name=""></GET>