Comment sélectionner des lignes avec plusieurs critères combinésSalut,
J'essaie d'isoler un groupe spécifique dans un grand ensemble de données en utilisant les critères suivants : tous les sujets qui ont répondu oui à 2 questions particulières ET tous les sujets qui ont répondu oui à 3 autres questions combinées (nombre total de questions = 9). J'ai pu isoler assez facilement les sujets répondant au premier critère mais je ne sais pas comment sélectionner les sujets répondant au deuxième critère (en supposant que tous les sujets répondant au 1er ont été retirés de l'échantillon d'intérêt pour éviter de les compter deux fois). Toute aide serait grandement appréciée!
Re : Comment sélectionner des lignes avec plusieurs critères combinésMerci pour l'information! La modification de Fruit_Scanner=="2" en Fruit_Scanner==2 a fonctionné comme un charme. En utilisant cela, j'ai finalement pu obtenir les lignes que je cherchais en utilisant ce qui suit:
dt = Ouvrir ( "monfichier.jmp" ) ;
dt << Sélectionnez où ( : testendurance_T1 == 1 | : teststrong_T1 == 1 | Somme ( : testerenjoy_T1 == 1 , : testad_T1 == 1 , : testsports_T1 == 1 , : testsleep_T1 == 1 ,
: testperform_T1 == 1 , : testlibido_T1 == 1 , : maleenergy_T1 == 1 ) >= 3 ) ;
Merci encore à tous pour tout !
Re : Comment sélectionner des lignes avec plusieurs critères combinésJe soupçonne que les colonnes Fruit_scanner et Vegitable_Scanner sont numériques, pas de caractères.Dans votre exemple "Nonworking", vous avez spécifié la comparaison comme suit :
Fruit_Scanner=="2".
Si Fruit_Scanner est une colonne numérique, la comparaison serait :
Fruit_Scanner==2
Regardez également les valeurs réelles de Fruit_scanner.Je pensais que vous aviez indiqué que les valeurs étaient 0 ou 1. Si cela est vrai, vous devez rechercher :
Fruit_Scanner==1
La réponse originale que j'ai publiée est le format qui doit être utilisé pour obtenir ce que vous voulez.Ce qui est nécessaire, ce sont les noms réels des colonnes et les valeurs réelles dans ces colonnes.Si vous pouvez fournir cela, je pense que je pourrais vous donner le JSL
Re : Comment sélectionner des lignes avec plusieurs critères combinésMerci Jim! J'ai essayé de remplacer ce 4 par un 1 car je sais que cette combinaison est vraie pour au moins une ligne mais rien n'a été sélectionné. Dans l'ensemble, je cherche à sélectionner des lignes qui ont "oui" (codé comme 1) comme réponses pour au moins 3 questions sur un groupe de 7 questions au total (donc> = 3 au total). Tous les conseils seraient grandement appréciés.
Merci encore!
Re : Comment sélectionner des lignes avec plusieurs critères combinésVous semblez ne pas savoir comment fonctionne la logique.Ce que vous avez ci-dessous ne peut jamais avoir une somme supérieure à un.
une comparaison booléenne donne toujours un 0 ou un 1.
Donc, si vous vérifiiez si une variable appelée X a une valeur de 22, le comparateur ou
X==22 renverra un 1 quand c'est vrai, et un 0 quand c'est faux.
dans votre exemple ci-dessous, le comparateur de
Fruit+Screener == "2" & Vegitables_Screener == "2" ne peut être que vrai (1) ou faux (0).
La somme de ceci ne peut être qu'un 0 ou un 1, jamais un 4
Re : Comment sélectionner des lignes avec plusieurs critères combinésMerci pour la réponse rapide Jeff! L'ajout de " " a permis d'isoler la ligne correspondant à ce numéro d'identification particulier. Comme je ne sais pas réellement si une ligne correspond aux critères d'une réponse "oui" (codée comme 1) à au moins 3 questions de l'ensemble de 7 questions mentionnées précédemment, j'ai essayé d'entrer une commande sum pour quelques variables qui, je le savais, devrait renvoyer quelque chose. Voici ce que j'ai essayé :
dt = Ouvrir ( "monfichier.jmp" ) ;
dt << Sélectionnez où ( Somme ( :Fruit_Screener == "2" & :Vegetables_Screener == "2" ) == 4 ) ;
Malheureusement il ne s'est rien passé. Je sais qu'au moins une ligne répond aux critères de "non" (codé comme 2) pour ces deux variables mais aucune sélection n'a eu lieu. Le _ dans les noms de variables pourrait-il être un problème ou est-ce une erreur avec la formule de somme ?
Merci encore!
Re : Comment sélectionner des lignes avec plusieurs critères combinés
@Jeff_Perkinson écrit:
N'oubliez pas que les colonnes de caractères sont affichées droite les colonnes justifiées à gauche et numériques sont gauche droite.
J'ai eu ma gauche et ma droite foiré ci-dessus. Désolé!
-Jeff
Re : Comment sélectionner des lignes avec plusieurs critères combinésVotre colonne ID est-elle composée de caractères ou de chiffres ?
N'oubliez pas que les colonnes de caractères sont affichées droite les colonnes justifiées à gauche et numériques sont gauche droite.
Si votre colonne contient des caractères, vous devrez mettre la valeur de l'ID entre guillemets doubles pour la comparaison.
Par exemple:
:ID=="1234"
Re : Comment sélectionner des lignes avec plusieurs critères combinésVotre colonne ID est-elle composée de caractères ou de chiffres ?
N'oubliez pas que les colonnes de caractères sont affichées justifiées à droite et les colonnes numériques à gauche.
Si votre colonne contient des caractères, vous devrez mettre la valeur de l'ID entre guillemets doubles pour la comparaison.
Par exemple:
:ID=="1234"
Re : Comment sélectionner des lignes avec plusieurs critères combinésMerci à tous! J'ai essayé de modifier le code mais cela ne fonctionnait toujours pas, alors je suis allé dans le guide de script JMP pour essayer de comprendre les choses. J'ai pu sélectionner toutes les lignes en utilisant ce code:
dt = Ouvert ( "monfichier.jmp" ) ;
dt<
Comme cela fonctionnait, j'ai essayé d'opter pour un code plus simple que celui d'origine, je devais voir si je pouvais mettre les choses sur la bonne voie en utilisant les instructions JMP. J'ai essayé de suivre le code sans succès:
dt = Ouvrir ( "monfichier.jmp" ) ;
dt << Sélectionnez où ( :ID==10322 ) ;
Je l'ai exécuté sans message d'erreur, mais rien ne s'est passé. J'ai vérifié la ligne spécifique qui aurait dû être sélectionnée, mais elle n'était toujours pas sélectionnée. J'ai réessayé mais toujours rien. En allant dans le journal des scripts, j'ai trouvé ce qui suit:
//:*/
dt = Open( "monfichier.jmp" );
dt << Sélectionnez Où( :ID==10322 );
/* :
Inscriptible[]
//:*/
dt = Open( "Pre_Post_Freshman_Screener_.jmp" );
dt << Sélectionnez Où( :ID==10322 );
J'ai essayé de changer le code en ID=10322 pour voir si cela ferait une différence et j'ai obtenu ce qui suit :
/* :
//:*/
dt = Open( "Pre_Post_Freshman_Screener_.jmp" );
dt << Sélectionnez Où( :ID=10322 );
/* :
Utilisez == pour la comparaison, = est l'affectation
Utilisez == pour la comparaison, = est une affectation{1}
//:*/
dt = Open( "Pre_Post_Freshman_Screener_.jmp" );
dt << Sélectionnez Où( :ID=10322 );
/* :
Utilisez == pour la comparaison, = est l'affectation
Utilisez == pour la comparaison, = est une affectation{1}
//:*/
dt = Open( "Pre_Post_Freshman_Screener_.jmp" );
dt << Sélectionnez Où( :ID=10322 );
/* :
Je ne peux pas m'empêcher de penser que cela doit être une simple erreur, mais je suis toujours perplexe. Des pensées?
Merci encore pour votre aide!
Re : Comment sélectionner des lignes avec plusieurs critères combinésLe commentaire de Mark ci-dessous est correct.Dans l'exemple que je vous ai donné, il y avait un commentaire
/* or >= 3 if that is what you want */
intégré dans une ligne de code.Ce type de commentaire commence par "/*" et recherche "*/" pour terminer le commentaire.Puisque votre code n'a que le /*, le ");" sur la ligne suivante est considéré comme faisant partie du commentaire en cours
Re : Comment sélectionner des lignes avec plusieurs critères combinésVous avez commencé un commentaire sur l'avant-dernière ligne, donc la parenthèse fermante n'est pas visible.
Re : Comment sélectionner des lignes avec plusieurs critères combinésMerci beaucoup pour la réponse rapide Jim. En utilisant mes variables et 1 comme code oui, j'ai essayé ce que vous m'avez donné:
dt = Tableau de données actuel () ;
dt << sélectionner les lignes où (
testendurance_T1 == "1" & teststrong_T1 == "1" & Somme (
testerenjoy_T1 == "1" ,
testad_T1 == "1" ,
testsports_T1 == "1" ,
testsleep_T1 == "1" ,
testperform_T1 == "1" ,
testlibido_T1 == "1" ,
maleenergy_T1 == "1"
) > = 3 /*
);
et j'ai l'erreur suivante :
Fin inattendue de l'entrée. Il manque peut-être un "," ou ")". Essayer d'analyser les arguments de la fonction "select rows where". Ligne 12 Colonne 4 : );►
J'ai vérifié la ligne 12 et elle ne répond à aucun des critères d'inclusion. Il me manque clairement quelque chose mais je ne sais pas quoi.
Merci encore!
Re : Comment sélectionner des lignes avec plusieurs critères combinésVous trouverez ci-dessous un script "Select Rows Where" qui montre la logique de ce que vous devez faire.Si vous souhaitez le faire de manière interactive, prenez simplement le composant logique de l'instruction et intégrez-le :
Lignes==>Sélection de ligne==>Sélectionner où
dt = Current Data Table();
dt << select rows where(
q1 == "Yes" & q2 == "Yes" & Sum(
q3 == "Yes",
q4 == "Yes",
q5 == "Yes",
q6 == "Yes",
q6 == "Yes",
q7 == "yes",
q8 == "Yes",
q9 == "Yes"
) == 3 /* or >= 3 if that is what you want */
);