Analogie JMP avec SAS 'Bonjour tous le monde
Je suis un ancien responsable SAS (assez compétent en programmation de base ...). Mais... !
Je voudrais faire une tâche assez simple dans JMP. Donc, il semble ...
En gros, je voudrais ouvrir le fichier CITIES.JMP et ne garder que toutes les lignes (et champs) qui ont une valeur manquante dans CO et éventuellement enregistrer ce sous-ensemble sous un nouveau CITIES_MISS.jmp.
L'équivalent de base est "où CO est manquant;"
Je ne peux tout simplement pas le résoudre. Même si mes requêtes semblent fonctionner, dès que j'ouvre le sous-ensemble, je trouve toujours toutes les lignes de données, parfois juste marquées. Aidez-nous à l'aide d'un exemple de code et expliquez peut-être les différences logiques entre la logique JMP et la logique SAS, le cas échéant.
Merci, amicalement
Débutant
Re: analogie JMP avec SAS 'La JSL requise serait quelque chose comme:
NamesDefaultToHere(1);
dt1 = Open("$SAMPLE_DATA/Cities.jmp");
missingCORows = dt1 << getRowsWhere(IsMissing(:CO));
dt2 = dt1 << Subset(Rows(missingCORows));
dt2 << setName((dt << getName)||"_MISS");
Essayez "Aide> Livres> Guide de script" et "Aide> Index de script". Plutôt que de trop réfléchir aux comparaisons, je commencerais par un problème et un code fonctionnel proche de la solution. L'expérience montre que vous obtiendrez beaucoup d'aide ici.
Re: analogie JMP avec SAS 'Je vous remercie. Maintenant j'ai les lignes.
Hier, j'ai passé environ quatre heures (!!) et je n'ai même pas réussi à atteindre
Ce résultat utilise Guide de script, Référence de syntaxe JSL, WWW.
Alors, s'il vous plaît soyez patient avec moi si je vous demande comment garder aussi tous les
d'autres champs CTITIES, par exemple VILLE, SO2, etc. Sincères amitiés.
Re: analogie JMP avec SAS 'Je suis sûr que vous cherchez une version scriptée de ceci et je la laisserai à quelqu'un d'autre. Personnellement, je suis capable de faire 95% de ce que je veux sans script, et c'est pour moi une différence majeure entre JMP et SAS (ou presque n'importe quel autre programme) Pour faire ce que vous voulez - sans script - allez simplement dans Row - Row Selection - Sélectionnez Where et mettez en surbrillance le nom de la colonne CO et laissez le égal à blanc Il sélectionnera les 5 lignes que vous recherchez. Ensuite, sous Tables, cliquez sur Sous-jeu. Vous obtiendrez toutes les colonnes et seulement ces 5 lignes.
Malheureusement, je ne pense pas qu'il soit possible pour JMP de scripter automatiquement ce que je viens de faire. Si vous faites une analyse et allez sauvegarder le script, le script est automatiquement généré. Mais je ne pense pas qu'il y ait un moyen d'avoir JMP automatiquement des manipulations de table de script. J'aurais aimé - et il y a peut-être quelque chose que je ne suis pas au courant.
Re: analogie JMP avec SAS 'Merci beaucoup pour votre évaluation simple
Une partie de mon travail consiste à évaluer les forces et les limites de JMP pour automatiser les processus en utilisant les scripts comme exigence de l'entreprise.
Si JMP ne peut même pas gérer la plupart des processus ETL simples, nous devrions continuer sans JMP.
Ce qui serait dommage cependant, car son portefeuille d’analyses semble être beau et dandy.
Re: analogie JMP avec SAS 'Bien sûr, JMP peut faire ce que vous voulez avec un script. Je souligne simplement que ce que vous avez demandé peut être fait sans un. Tout ce que je fais sans script a un script qui s'exécute en arrière-plan. Les 4 heures que vous avez passées à essayer de faire fonctionner JMP vous ont demandé 4 heures pour trouver le bon script. J'ai passé 5 secondes à accomplir la tâche sans script. Je comprends. Votre travail consiste à évaluer JMP. La création de scripts est une exigence. Eh bien, cette exigence est remplie. Si votre préoccupation est d’évaluer le langage de script, attendez que d’autres répondent, car sur ce forum, de nombreuses personnes peuvent parler du script JMP par rapport à d’autres langues.
Re: analogie JMP avec SAS 'Peut-être que je reformule ma demande à la communauté JMP. Pouvez-vous recommander un
forum JMP spécifique où je pourrais demander une approche de script JMP possible?
Re: analogie JMP avec SAS 'Je ne suis pas très clair quant à la portée de ce que vous voulez faire quand vous dites " où je pourrais demander une approche de script JMP possible '. Pour quoi, exactement?
Comme mentionné, c’est un bon endroit pour obtenir de l’assistance pour tout ce qui concerne JMP, y compris JSL. Mais, comme le montre peut-être ce fil, il peut être difficile d’obtenir une image claire - En fonction de la manière dont la question est posée, les réponses peuvent être utiles ou non, et peuvent ou non supposer davantage de contexte et de connaissances préalables que le demandeur a.
Et, comme déjà indiqué, les «comparaisons» peuvent être difficiles à coder: elles sont encore plus difficiles pour les applications logicielles.
S'il existe une intention sérieuse d'examiner comment JMP peut répondre à vos besoins par rapport à d'autres logiciels (y compris SAS), alors je sais que l'équipe JMP locale serait ravie de vous impliquer et de vous aider à résoudre ce problème.
Re: analogie JMP avec SAS 'Merci beaucoup pour vos bons commentaires. Peut-être que je me suis fait pas assez clair.
JMP étant plus que nouveau pour moi, je serais plus utile d’avoir un pointeur sur
quel groupe ou liste JMP je pourrais poser ma question sur la façon de filtrer un JMP
ensemble de données dans un sous-ensemble par la condition "erreurs". Je réalise maintenant comment je
le sujet de mon message original, c’est plus que trompeur.
Malheureusement, j'ai remarqué qu'après qu'il était déjà sorti et trop tard ...
Analogie JMP avec SAS: filtrer les données par valeur manquante dans une colonneProche, mais ....
//open data table
dt1 = Open( "$SAMPLE_DATA/Cities.jmp" );
//select all rows of data table where column CO is missing
dt1 << Select Where( Is Missing( :CO ) );
//create a subset of data table with only selected rows, keeping all columns
dt1 << subset( selected rows( 1 ) );
//note that renaming and saving can be done in one step [DOESNT WORK: SAVED dataset still contains all (N=52) data rows instead of selected (N=5) rows]
dt2 << save( "V:/Process/.../Data/AnewDEMOname.jmp" );
J'ai même essayé une variante comme
Close( dt2, save( "V:/Process/.../Data/AnewDEMOname.jmp" ) );
Ça ne marche pas. Le jeu de données SAVED contient toujours toutes les lignes (N = 52) au lieu des lignes sélectionnées (N = 5)].
Est-ce un bug de JMP?
J'utilise JMP ® 14.0.0 (64 bits) sur Microsoft Windows 10 Entreprise 64 bits.
Analogie JMP avec SAS: filtrer les données par valeur manquante dans une colonneDésolé, il me semble avoir manqué de mettre la tâche pour dt2 dans po
CA devrait etre:
//open data table
dt1 = Open( "$SAMPLE_DATA/Cities.jmp" );
//select all rows of data table where column CO is missing
dt1 << Select Where( Is Missing( :CO ) );
//create a subset of data table with only selected rows, keeping all columns
//note the assignment of the result of the subset into the variable dt2
dt2 = dt1 << subset( selected rows( 1 ) );
//note that renaming and saving can be done in one step
dt2 << save( "V:/Process/.../Data/AnewDEMOname.jmp" );
Je vais corriger le post précédent afin que personne ne lise ceci plus tard ne s'embrouille.
Mes excuses. Veuillez continuer à nous faire savoir vos progrès.
Re: analogie JMP avec SAS 'Suivi sur @ian_jmp la réponse, il a raison, c'est l'endroit poser vos questions sur JMP.
Tous les membres présents se feront un plaisir de vous aider à vous orienter dans la bonne direction. Continuez à poser des questions et laissez-nous vous aider.
Cela dit, la meilleure façon d'apprendre JSL est d'apprendre à utiliser JMP de manière interactive. Évitez de faire des suppositions sur la façon de faire les choses en fonction de la manière dont vous les feriez dans SAS. Les deux produits, JMP et SAS, sont construits avec des modèles d'utilisation différents, ils agissent donc différemment.
La plupart du langage de script est basé sur l’automatisation de JMP à l’aide des mêmes commandes que celles que vous utiliseriez pour effectuer des tâches de manière interactive. Par exemple, dans votre question initiale, vous vouliez savoir:
En gros, je voudrais ouvrir le fichier CITIES.JMP et ne garder que toutes les lignes (et champs) qui ont une valeur manquante dans CO et éventuellement enregistrer ce sous-ensemble sous un nouveau CITIES_MISS.jmp.
Pour procéder de manière interactive, ouvrez CITIES.JMP, sélectionnez toutes les lignes où CO est manquant, puis utilisez Tables-> Sous-ensemble pour créer une nouvelle table de données.
En conséquence, la JSL suit le même schéma:
//open data table
dt1 = Open("$SAMPLE_DATA/Cities.jmp");
//select all rows of data table where column CO is missing
dt1 << Select Where(is Missing(:CO));
//create a subset of data table with only selected rows, keeping all columns
dt2 = dt1 << subset(selected rows(1));
//note that renaming and saving can be done in one step
dt2 << save("A new name.jmp");
Tu as dit:
Si JMP ne peut même pas gérer la plupart des processus ETL simples, nous devrions continuer sans JMP.
Ce qui serait dommage cependant, car son portefeuille d’analyses semble être beau et dandy.
Je pense que la plupart des gens ici diraient que JMP peut gérer des processus ETL simples (et complexes!). Donc, si vous ne savez pas comment faire, il suffit de demander.
Voici une liste de les meilleures ressources pour apprendre JMP.
Faites-nous savoir pendant que vous continuez d'explorer JMP et nous serons heureux de vous aider.
[Note 20May2019: Le code ci-dessus a été corrigé pour afficher une affectation à dt2. À l'origine, cela avait été accidentellement omis. Les messages ultérieurs l'ont noté et cela a été corrigé ici.]
Analogie JMP avec SAS: filtrer les données par valeur manquante dans une colonneMAINTENANT cela a fonctionné. Comme un charme. Merci beaucoup.