Impossible d'obtenir les noms de colonne dans plusieurs variablesSalut,
J'essaie d'automatiser un processus. Voici un aperçu de la première partie:
-Tabuler
-Faire table
-Exécuter multivariée sur toutes les colonnes continues - afin que je puisse obtenir une matrice de corrélation
Je me bats sur la partie multivariée. Je ne sais pas comment le faire pour mettre les colonnes que je veux là-dedans. Cela fonctionne si je connais les noms des colonnes et que je les colle dans cette partie:
Multivarié (
Y ( NOMS DE COLONNE ICI ) ,
Mais comme je ne connais pas les noms des colonnes, j'aimerais avoir mis une variable de liste ou quelque chose à adapter. Toute aide grandement appréciée!
Voici le tout:
dt = data table("wpu10");
tab1= dt<<TABULATE></TABULATE>
Re: Impossible d'obtenir les noms de colonne dans plusieurs variablesVous étiez assez proche .... essayez ceci
Names Default To Here( 1 );
dt = Data Table( "wpu10" );
tab1 = dt << Tabulate(
Add Table( Column Table( Grouping Columns( :series_id, :series_title ), Analysis Columns( :value ) ), Row Table( Grouping Columns( :year ) ) )
);
dtTab1 = tab1 << makeintodatatable;
dtTab1 << set name( "dtTab1" );
// Get Column names returns a list
colnameslist = dtTab1 << get column names( Continuous, string );
Multivariate(
Y( Eval List( colnameslist ) ),
Estimation Method( "Pairwise" ),
Matrix Format( "Square" ),
Scatterplot Matrix( Density Ellipses( 1 ), Shaded Ellipses( 0 ), Ellipse Color( 3 ) )
);
Re: Impossible d'obtenir les noms de colonne dans plusieurs variablesL'argument Y () attend des références à une ou une colonne, pas des noms (chaînes de caractères). Voici un autre moyen de le faire fonctionner:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Fitness.jmp" );
col name = dt << Get Column Names( "Continuous" );
col expr = Expr( Y() );
For( i = 1, i <= N Items( col name ), i++,
Insert Into( col expr, Column( col name[i] ) );
);
Eval(
Substitute(
Expr(
Multivariate(
yyy,
Estimation Method( "Pairwise" ),
Matrix Format( "Square" ),
Scatterplot Matrix( Density Ellipses( 1 ), Shaded Ellipses( 0 ), Ellipse Color( 3 ) )
);
),
Expr( yyy ),
Name Expr( col expr )
)
);Re: Impossible d'obtenir les noms de colonne dans plusieurs variablesmerci pour l'aide, mais on dirait que j'ai toujours des problèmes. J'ai sorti ceci de mon journal au cas où cela aiderait:
"Somme (valeur, WPU106, données de produit PPI pour les métaux et les produits métalliques-Équipements de chauffage, non ajusté des variations saisonnières)",
"Somme (valeur, WPU107, données de produit PPI pour les métaux et les produits métalliques-Produits métalliques structuraux fabriqués, non corrigé des variations saisonnières)",
Le rôle nécessite au moins 1 colonne.}
), Multivariée (/ * ### * / Y (Liste d’évaluations (colnameslist)),
Méthode d'estimation ("Pairwise"),
Format matriciel ("carré"),Re: Impossible d'obtenir les noms de colonne dans plusieurs variablesJ'ai essayé d'adapter votre solutino mais je ne pouvais pas l'obtenir pour me donner la sortie multivariée.
Je pense que le problème est que je ne connais pas les noms des colonnes. J'ai besoin d'un moyen d'obtenir les noms après avoir fait le "dtTab1 = tab1 << makeintodatatable;"
Peut-être que votre code me montre, mais a encore du mal à voir comment. avez-vous besoin des noms de colonne où vous avez aa ou est-ce que cela va être un nom qui aura les noms?
Re: Impossible d'obtenir les noms de colonne dans plusieurs variablesJe ne vois pas comment ces erreurs sont liées. Essayez-vous d'utiliser les étiquettes de tabulation en tant que noms de colonne pour les variables multiples dans le rôle Y?
Oubliez le script pour l'instant. Pouvez-vous atteindre le résultat de manière interactive? Autrement dit, obtenez le résumé de manière interactive avec Tabulate, enregistrez les résultats dans un nouveau tableau de données et lancez Multivariate?
Les noms de colonne comme "Sum (... ) "sera interprété comme un appel de fonction au lieu d’une référence de colonne dans l’appel Eval List () sans traitement spécial.
Re: Impossible d'obtenir les noms de colonne dans plusieurs variablesLe problème que vous rencontrez concerne les noms complexes générés lorsque vous créez votre table à partir de la table Tabulate. Dans le script ci-dessous, j'ai remplacé le tableau pour une plateforme de résumé. Cela n'élimine pas le problème des noms complexes, mais crée une table de données en une seule action rapide, qui pour la plupart est identique à la sortie Tabulate. Ce que le script fait pour gérer les noms complexes, est la place autour de chaque élément de la liste des noms de colonnes de la fonction: Name (), à spécifier directement à JMP pour traiter le contenu de la fonction comme un nom de colonne. Enfin, cette liste est transmise à la plate-forme multivariée pour effectuer l'analyse.
Names Default To Here( 1 );
dt = Data Table( "wpu10" );
/*tab1 = dt << Tabulate(
Add Table( Column Table( Grouping Columns( :series_id, :series_title ), Analysis Columns( :value) ), Row Table( Grouping Columns( :year) ) )
);
dtTab1 = tab1 << makeintodatatable;
dtTab1 << set name( "dtTab1" );*/
// Create the data table directly
dtTab1 = dt << Summary(
Group( :year ),
Sum( :value ),
Subgroup( :series_id, :series_title ),
Freq( "None" ),
Weight( "None" )
);
// Get Column names returns a list
colnameslist = dtTab1 << get column names( Continuous,string);
// Get rid of the Row Number column from the list
colnameslist = remove( colnameslist, 2, 1 );
// Create a new list adding the :Name() function around each column name
// to handle the complex names the summary gave them
thelist={};
For( i = 1, i <= N Items( colnameslist ), i++,
xx = colnameslist[i];
Insert Into( thelist, Parse( Eval Insert( ":Name(\!"^xx^\!")" ) ) );
);
// Run the correlations
dtTab1 << Multivariate(
Y( eval(thelist) ),
Estimation Method( "Pairwise" ),
Matrix Format( "Square" ),
Scatterplot Matrix( Density Ellipses( 1 ), Shaded Ellipses( 0 ), Ellipse Color( 3 ) )
);
En outre, je soutiendrai @markbailey dans son commentaire sur le fait de pouvoir faire votre analyse de manière interactive. S'il ne s'agit pas d'une analyse que vous allez faire encore et encore, pourquoi se donner la peine de créer un script?
Re: Impossible d'obtenir les noms de colonne dans plusieurs variablesMerci beaucoup pour votre aide! J'ai fini par tout faire pointer et cliquer. J'ai essayé de suivre votre dernier message ce matin mais toujours un peu perdu. Les noms de colonne pourraient poser problème. De même, lorsque je le fais manuellement et que je me rends dans la table dtTab1, accédez à Analyser> Méthodes multivariées> JMP multivariée pense que je veux le faire dans la table dt. Ce n'est que la deuxième fois que je passe par ce processus. JMP réalise que je veux le faire sur la nouvelle table.
J'utilise JMP 12, donc je ne sais pas si cela me cause également des problèmes.
Re: Impossible d'obtenir les noms de colonne dans plusieurs variablesPouvez-vous partager un échantillon de votre table de données?
Re: Impossible d'obtenir les noms de colonne dans plusieurs variablesOui, ce que j’ai joint est la table où je me suis retrouvé dans le code que vous m’avez aidé. Je souhaite passer de cette table (dtTab1) à une table de coefficients de corrélation, comme celle créée à partir de l'analyse> méthodes multivariées> sortie multivariée.
Comme je l’ai mentionné, même lorsque j’assume les étapes pour le faire manuellement, c’est un peu génial. Une fois que dtTab1 est créé, la première fois que je passe par les étapes décrites ci-dessus, l'invite permettant aux colonnes d'effectuer l'analyse multivariée provient de la table inintial (tous les index d'une colonne et leur nom dans une autre colonne). Laissez-moi kwno si vous en voulez un aussi)