Vous associez deux tables JMP stockées dans un dossier local en fonction de critères?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Bonjour à tous,
Je suis relativement nouveau sur JMP et explore toujours ..
J'ai deux fichiers jmp dans mon dossier local, qui contiennent l'identifiant du patient de l'hôpital et ses informations de date de visite en colonnes. Un fichier jmp contient des données de visite ambulatoire et un autre fichier de données de visite hospitalière, les deux pour une période allant de 2010 à 2015.
Je souhaite comparer et joindre les deux fichiers jmp de manière à ce que la jointure me fournisse un sous-ensemble de patients dont la date de visite ambulatoire est inférieure à 14 jours à compter de la date de la visite (critères)
J'utilise JMP 12.0 et le menu "Joindre" sous Tables ne me permet pas de construire les critères entre les colonnes des deux tables.
Comment je fais? Dois-je écrire un SQL? Si oui quoi et où devrais-je écrire le code SQL qui peut comparer les deux tables jmp et les joindre pour obtenir la réponse?
Merci pour toute aide.
Cordialement,
Vinod
Re: Vous associez deux tables JMP stockées dans un dossier local en fonction de critères?Bonjour Ian,
J'ai découvert que la table des patients hospitalisés contenait deux colonnes qui retardaient probablement le traitement du script dans son intégralité ou restaient bloquées dans l'impossibilité de continuer. L'une d'elles était Age, comme on peut le voir dans mon image précédente, lorsque, à chaque instance de traitement, elle affichait "évaluer Age" et commençait à tourner en vrille. Maintenant, Age et l’autre colonne sont des colonnes de formules et lorsque j’ai codé en dur les valeurs et que j’ai retiré la formule, le bloqué avait disparu .. Pourquoi pourquoi?
Désormais, le script peut s'exécuter et ouvrir une table PID unique de 120 k en 3 heures. C’est avec une machine à processeur cœur i7 de 64 bits à 8 Go de RAM avec uniquement les processus de bureau Windows standard en cours d’exécution et le script étant le seul chargeur lourd.
Merci et salutations
Vinod Subramanian
Re: Vous associez deux tables JMP stockées dans un dossier local en fonction de critères?Oui, je comprends que c'est probablement un problème de performances associé aux ressources et hors de portée. Vous pouvez ignorer dans ce cas et fermer ce fil.
Merci d’avoir aidé à produire un script qui fonctionne. Cela aurait été bien si je pouvais l'utiliser pour obtenir un résultat positif sur l'ensemble de données volumineux. Mais vous déciderez d'un compromis en exécutant le script par lots de données si rien d'autre ne fonctionne.
Juste pour information, puisque vous avez demandé ... le numéro d'identification unique du patient est d'environ 500 000.
Chaque fois que je commence à exécuter le script sur des tables de données volumineuses, elles s’ouvrent, puis je vois "Evaluer l’âge" (en bas de la fenêtre du navigateur), voir image intégrée .. Il reste comme ça avec la flèche tournante le traitement est en cours, mais le statut "Evaluer l'âge" ne change jamais. J'ai une colonne Âge dans les tableaux, mais pourquoi cela s'arrête-t-il, me bat-il? Hier, j'ai gardé le script en marche pendant 20 heures d'affilée, puis je l'ai tué.

Re: Vous associez deux tables JMP stockées dans un dossier local en fonction de critères?Au sommet du fil, j'ai dit "tant que vous n'êtes pas à court de ressources". . .
Je pense que des millions de lignes est ambitieux. Comme je l'ai également mentionné, le code que j'ai écrit n'est pas «meilleur» en aucun sens. Bien que cela puisse être optimisé, je ne suis toujours pas sûr que les tailles de données que vous mentionnez seraient viables. Ce n'est pas vraiment un commentaire sur JMP en tant que tel, mais davantage sur ce qui est raisonnable pour tout logiciel de bureau.
Je pourrais peut-être creuser un peu plus, mais pour m'aider, il serait bon de savoir combien d'identifiants de patients distincts il y a dans les deux grands tableaux que vous mentionnez. D'après la façon dont j'ai écrit le code, je sais que ce serait l'un des facteurs permettant de déterminer si le code est complet.
Re: Vous associez deux tables JMP stockées dans un dossier local en fonction de critères?salut Ian , J’ai travaillé le script sur un plus petit ensemble de données d’environ 100 enregistrements par table et le résultat est celui attendu. Je vous remercie. J'ai marqué la bonne réponse dans la chaîne ci-dessus.
Le défi auquel je suis maintenant confronté consiste à exécuter le script sur les plus grands ensembles de données (2 millions d’enregistrements) que j’ai.
Aussi, pourriez-vous m'aider avec le scénario du scénario 2 que j'ai expliqué plus tôt. Je vous remercie. Si vous voulez que je m'en connecte comme une autre requête, je peux le faire.
Merci beaucoup d'avoir aidé.
Re: Vous associez deux tables JMP stockées dans un dossier local en fonction de critères?Bonjour Ian, bonjour.
J'ai commencé à exécuter le script sur les fichiers que j'ai. Les tables sont énormes .. Quelque 2 millions de lignes en consultation externe et un million en hospitalisation. Le script continuait à courir..J'ai continué à fonctionner pendant 12 heures et je l'ai tué quelques minutes en arrière.
Je vais d'abord essayer de l'exécuter sur un jeu de données plus petit et voir comment il réagit.
Pouvez-vous remarquer un autre problème dans le script? J'ai enlevé quelques-uns de vos codes, modifié pour appeler les tables et renommé les noms de colonnes qui existent dans les tables.
Cordialement,
Vinod
Re: Vous associez deux tables JMP stockées dans un dossier local en fonction de critères?D'ACCORD. On dirait que vous êtes proches alors. Il peut y avoir d'autres problèmes, mais dans votre code, les lignes 2 et 3 doivent être:
dti = DataTable ( "ANE_2010-2015" ) ;
dto = DataTable ( "Consolidated-SOC-2011-2015" ) ;
puisque c'est le moyen de se référer à une table en JSL.
Re: Vous associez deux tables JMP stockées dans un dossier local en fonction de critères?Bonjour et merci Ian. J'ai couru le fichier jsl et la sortie fonctionne à droite ..
J'ai essayé de modifier le jsl pour l'appliquer sur les deux tables jmp que j'avais. Je semble faire quelque chose de mal dans le script car rien ne se passe sur le script en cours et je n’obtiens aucun message d’erreur, je joins le jsl édité à des fins de vérification et de guidage.
Le script ci-dessus fonctionne pour le scénario 1, pour le scénario 2 que je viens d’indiquer précédemment où les tables jmp pour patients hospitalisés et ambulatoires sont concaténées dans une seule table jmp intégrée, comment le script devrait-il changer? Pour distinguer quelles lignes de données sont hospitalisées et lesquelles sont ambulatoires, une colonne contenant les balises "OP" et "IP" a été introduite pour chaque ligne de données. Les données d'identification du patient et de visite des tables des patients hospitalisés et ambulatoires ont été concaténées dans une colonne ID du patient et date de visite dans la table jmp intégrée.
Re: Vous associez deux tables JMP stockées dans un dossier local en fonction de critères?Juste pour vous aider à comprendre un peu plus facilement, j'ai écrit du code pour implémenter la logique que je décris tout à l'heure. Enregistrez la pièce jointe, ouvrez-la dans JMP et faites "Edition> Exécuter le script". Il crée (de manière aléatoire) les tables 'Inpatient' et 'Outpatient' (dont des exemples sont joints ci-dessus), mais ajoute ensuite des colonnes à 'Outpatient'. Ne vous inquiétez pas du code, regardez simplement les deux tables et voyez si c'est ce que vous cherchez.
(BTW, je ne prétends pas que le code est 'meilleur' dans tous les sens, surtout parce que, comme le montre le fil, je ne suis pas sûr d'avoir clairement défini les exigences).
Re: Vous associez deux tables JMP stockées dans un dossier local en fonction de critères?Je vous remercie Ian . D'après ce que vous avez écrit, je pense que vous avez bien compris ... Donnez-moi 24 heures pour revenir à vous après avoir essayé les fichiers que vous m'avez envoyés.
FYI d'un contexte commercial, j'essaie de trouver des cas de patients qui sont venus pour une visite ambulatoire dans les 14 jours de leur visite d'hospitalisation. À l'avenir, il me suffira de modifier le nombre de jours (intervalle) pour obtenir l'ensemble de résultats requis en fonction de la demande de l'entreprise.
Une de vos déclarations "j'ai l'impression que vous ne vous attendez pas à plusieurs correspondances, donc je ne suis pas sûr si vous voulez permettre cette possibilité.",
Chaque visite en ambulatoire ou en hospitalisation constitue un cas distinct et une ligne distincte dans les tableaux .... Il est possible qu'un patient puisse avoir deux rendez-vous ambulatoires le même jour, avec des spécialités identiques ou différentes. Si c'est ce que vous vouliez dire par plusieurs correspondances, il est possible de boucler chaque date de visite du patient hospitalisé.
Re: Vous associez deux tables JMP stockées dans un dossier local en fonction de critères?D'ACCORD. J'ai composé des données qui, je pense, sont similaires à celles que vous avez sous la main. Enregistrez les pièces jointes, ouvrez les tables et exécutez le script enregistré dans chacune d'elles.
Pour vérifier si j'ai bien compris, vous souhaitez parcourir les lignes de la section 'ambulatoire' comme suit:
1/. La première ligne est 'ID = 1' et 'Out Date = 20Jan2014 01:28:05 '.
2 /. Recherchez n'importe quelle ligne dans 'Patient hospitalisé' dans laquelle 'ID = 1' et 'Date d'entrée' ne sont pas plus de 14 jours plus tôt que 20Jan2014 01:28:05. J'ai l'impression que vous ne vous attendez pas à plusieurs correspondances, donc je ne suis pas sûr de vouloir permettre cette possibilité. Mais s'il y a une correspondance, vous voulez ajouter une nouvelle colonne à 'Ambulatoire' qui contient la valeur 'En date' dans la ligne actuelle (dans ce cas, la ligne 1).
3 /. Passer à la ligne suivante dans ' Ambulatoire 'et répétez jusqu'à la fin de la table.
Est-ce correct, s'il vous plaît?
Re: Vous associez deux tables JMP stockées dans un dossier local en fonction de critères? Salut Ian ,
Je n'avais pas mentionné plus tôt mes antécédents non codants, alors comprenez-vous bien quand vous m'avez envoyé la réponse. Je vous remercie.
J'ai essayé comme tu l'as dit .. Voici les sorties que je reçois

Une observation que j'ai sur les tables
- Chaque patient à la table d’entrée et de sortie ne dispose que d’un horodatage de visite et
- Tous les patients figurent dans les deux tableaux (entrée et sortie)
Selon les détails du scénario que j'ai ajoutés en plus de votre première réponse ... essayez d'exprimer ci-dessous ...
une. vous remarquerez, d'après le tableau de scénarios et la structure de données fournis, que chaque patient a Plusieurs visites dans le tableau 1 (consultation externe) et le même patient peuvent avoir plusieurs visites ou même une seule visite dans le tableau 2 (patients hospitalisés).
b. La nécessité que chaque date de visite d'un patient en hospitalisation soit inférieure à l'une des dates de visite en ambulatoire de ce patient (notez que chaque date de visite d'un patient doit être comparée à la date de visite en ambulatoire du même patient)
c. Pour les lignes de consultations externes répondant au critère b, appliquez les critères suivants: la date de visite hospitalière est <= 14 jours de la date de visite ambulatoire du même patient (peut avoir déclaré le contraire plus tôt à tort. Pardon)
ré. Chaque fois que le critère c est rempli, la ligne en Table ambulatoire contre ce patient doit être marqué comme 1 (oui)
e. Une nouvelle colonne doit être ajoutée dans la Table ambulatoire après que le critère soit rempli, colonne d'indicateur pour saisir la date de la visite chez le patient hospitalisé (par rapport à laquelle le critère a été rempli)
F. Si aucune ligne de traitement ambulatoire ne correspond à l'un des critères de date de visite des patients hospitalisés b et c, indiquez 0 dans le tableau des consultations externes.
J'espère que je suis suffisamment clair.
Re: Vous associez deux tables JMP stockées dans un dossier local en fonction de critères?Je suis désolé - nous utilisons souvent le code pour répondre rapidement aux questions, mais pour être clair, vous n'avez certainement pas besoin de l'utiliser pour travailler avec JMP.
Pour savoir si je suis sur la bonne voie, sélectionnez le code ci-dessus et copiez-le (dans votre presse-papiers). Ensuite, faites 'Nouveau> Nouveau script' et collez-le dans la fenêtre résultante. Ensuite, faites 'Edition> Exécuter le script'. Après un court délai, cela devrait donner trois tables, appelées "Dates d'entrée", "Dates d'entrée" et "Dates d'entrée et de sortie". Vous pouvez obtenir le troisième en utilisant 'Tables> Join' sur les deux premiers, et en joignant en faisant correspondre les colonnes. Si vous avez besoin d’aide supplémentaire pour ce faire, voir: http://www.jmp.com/support/help/Join_Data_Tables.shtml . Dans le troisième tableau, double-cliquez sur l'en-tête de colonne "Critère satisfait?". Ceci est une colonne de formule JMP (avec une propriété 'Value Order' définie): http://www.jmp.com/support/help/Create_a_Formula_Column.shtml .
Re: Vous associez deux tables JMP stockées dans un dossier local en fonction de critères?salut Ian Tout d’abord, je voudrais vous remercier pour votre réponse et votre aide étendue.
Étant nouveau pour JMP et également non codeur, plus un homme d’affaires, j’ai besoin d’un peu plus de profanes et de conseils pas à pas. Je voudrais aller avec l'approche interactive qui pourrait être la plus confortable et permettre une résolution plus rapide.
Mais avant cela, j'aimerais vous donner une clarté détaillée de mon besoin ... J'ai illustré un instantané factice des données dans les deux tableaux à cet effet et énuméré deux scénarios ... suivis d'une troisième clarification liée à l'exécution. Désolé pour cette longue réponse, mais je pense qu'il est nécessaire de pouvoir aider à fournir les conseils appropriés. Merci encore pour votre patience et votre temps.
1. Scénario 1
Table JMP ambulatoire 1: (seules les colonnes pertinentes sont affichées)
Année ID du patient Date de la visite ..... ........ ...... ........
2010 1 20/03/2010
2010 1 15/05/2010
2011 1 19/01/2011
2011 1 08/04/2011
.
.
2010 2 18/06/2010
2010 2 07/12/2010
2010 2 08/1/2010
.
.
et ainsi de suite pour n patients..Il peut y avoir un patient ayant une seule visite ambulatoire en 5 ans ..
JMP patients hospitalisés Tableau 2: (uniquement les colonnes pertinentes)
Année ID du patient Date de la visite ..... ........ ...... ........
2010 1 01/08/2010
2010 1 06/10/2010
2010 1 19/10/2010
2011 1 15/07/2011
.
.
2010 3 04/12/2010
2010 3 20/09/2010
2010 3 12/10/2010
.
et ainsi de suite pour n patients..Il peut y avoir un patient avec une seule visite hospitalière en 5 ans. Il n'y a pas de données pour le patient 2 dans ce tableau ...
Ce dont j'ai besoin est donné la table et la structure de données pour chaque patient dans table ambulatoire, voudrait comparer le dates de visites ambulatoires et dates de visites hospitalisées pour ce patient et créer une table de sous-ensemble qui enregistre la ligne de consultation externe affectée (toutes les colonnes de la table des patients externes pour cette ligne identifiée) chaque fois que les critères suivants sont remplis: la date de la visite ambulatoire est <= 14 jours à compter de la date de la visite hospitalisée (Notez que la date de la visite hospitalière doit être antérieure à la date de la visite ambulatoire avant la vérification des critères) . Cette ligne de consultations externes doit également inclure la colonne de date de visite des patients hospitalisés dans la table de sous-ensembles ainsi créée.
2 Scénario 2
J'ai également un tableau concaténé construit en concaténant le tableau et les données ci-dessus concernant les patients hospitalisés et les patients externes. Dans ce table concat J'ai introduit une colonne pour identifier quelle ligne de données patient était hospitalisée et quelle patiente ambulatoire, tout en conservant les mêmes noms de colonne. Dans un tel scénario, comment la formule du scénario 1 serait-elle modifiée pour générer la table de sous-ensemble?
3 Pour les formules construites dans les scénarios 1 et 2, Où dans JMP dois-je appliquer / exécuter la formule pour pouvoir obtenir la table de sous-ensembles?
Re: Vous associez deux tables JMP stockées dans un dossier local en fonction de critères?Étant donné que votre point de départ semble être deux tables JMP, et tant que vous n'êtes pas à court de ressources, vous pouvez également faire la jointure et l'application de votre critère dans JMP. Voir le code ci-dessous, mais notez l'ordre des arguments dans la fonction 'DateDifference ()'! Si vous souhaitez travailler de manière interactive, il suffit de regarder la formule dans le "Critère satisfait?" colonne et construisez l’analogue pour votre cas.
NamesDefaultToHere ( 1 ) ;
// Créer des données 'date' simulées
nr = 100 ;
dt1 = NewTable ( "Dans" ,
NewColumn ( "ID" , Numérique , Nominal , Valeurs (( 1 :: nr ) ` )) ,
NewColumn ( "Date" , Numérique , Continu ,
Formule ( RandomInteger ( DateJA ( 1 , 1 , 2014 ) , DateJA ( 31 , 12 , 2014 ))) ,
Format ( "ddMonyyyy h: m: s" , 22 , 0 ) ,
Format d'entrée ( "ddMonyyyy h: m: s" , 0 ) ,
)
) ;
Invals = Colonne ( dt1 , "Date" ) << getValues ;
jour de retard = J ( nr , 1 , Rond ( AléatoireNormal ( 14 , 7 ) , 0 )) ;
jour de retard [ Loc ( jour de retard <= 0 )] = 0 ;
résultats = Invals + En jours ( jour de retard ) ;
dt2 = NewTable ( "En dehors" ,
NewColumn ( "ID" , Numérique , Nominal , Valeurs (( 1 :: nr ) ` )) ,
NewColumn ( "Date de sortie" , Numérique , Continu ,
Valeurs ( résultats ) ,
Format ( "ddMonyyyy h: m: s" , 22 , 0 ) ,
Format d'entrée ( "ddMonyyyy h: m: s" , 0 ) ,
)
) ;
// Rejoindre dt1 et dt2
Attendre ( 3 ) ;
dt3 = dt2 << Joindre (
Avec ( dt1 ) ,
Sélectionner avec ( : ID , : En date ) ,
Sélectionner ( : Date de sortie ) ,
En faisant correspondre les colonnes ( : ID = : ID ) ,
Drop multiples ( 0 , 0 ) ,
Inclure les correspondances ( 0 , 0 ) ,
Préserver l'ordre de la table principale ( 1 ) ,
Tableau de sortie ( "Dates d'entrée et de sortie" )
) ;
// Ajoute une colonne pour indiquer si le créancier est satisfait
dt3 << Nouvelle colonne ( "Critère satisfait?" ,
Numérique ,
"Nominal" ,
Format ( "Meilleur" , 12 ) ,
Formule ( Si ( DateDifference ( : En date , : Date de sortie , "Journée" ) <= 14 , 1 , 0 ) ) ,
Étiquettes de valeur ( { 0 = "Non" , 1 = "Oui" } ) ,
Définir la sélection
) ;