Créer une nouvelle colonne avec des variables<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Salut tout le monde,
J'essaie de créer une nouvelle colonne avec une formule, représentée par 2 variables comme ci-dessous :
dt << Nouvelle Colonne("maNouvelleColonne", Numérique, Continue, Formule(:Ceiling( XXColumn / Size) * Size));
où:
XXColumn est l'un des noms de colonne dans dt, sélectionné dans la boîte de dialogue de colonne
Taille = valeur numérique de la boîte de dialogue de colonne
Ma tentative a abouti à une nouvelle colonne avec une formule sans valeur car la formule est créée comme ci-dessous :
Plafond(Colonne(XXColonne ) / Taille) * Taille
sans l'attribuer réellement.
Une idée de comment je peux accomplir cela?
Re : Créer une nouvelle colonne avec des variablesMerci encore, MS. Je prendrai note à ce sujet.
Re : Créer une nouvelle colonne avec des variablesPour autant que je sache en lisant votre code, f_Bin fait référence à une colonne alors que n_Bin est une chaîne, qui est le type de données le plus sûr à utiliser ici.
Re : Créer une nouvelle colonne avec des variablesenfin la magie a opéré !!!
voici le code que j'ai utilisé..
col = dts << Nouvelle colonne("Binning", Numérique, Continu);
Eval( Parse( Eval Insert( "col << Set Formula(:Ceiling( ^n_Bin^ / ^BinSize^) * ^BinSize^)<< eval formula" )) );
Merci MS pour les conseils ; quel est le diff sur f_bin et n_bin que j'ai utilisé ?
Re : Créer une nouvelle colonne avec des variablesEssayez d'utiliser n_Bin directement au lieu de f_Bin :
Éval ( Analyser ( Insertion d'évaluation ( "col << Set Formula(Ceiling( ^n_Bin^ / ^BinSize^) * ^BinSize^)" )) ) ;
Re : Créer une nouvelle colonne avec des variablesCela n'a pas fonctionné. Peut-être que je devrais expliquer ce que je fais et partager coller mon code.
Étape 1 : Collecter les entrées de la boîte de dialogue Colonne
Étape 2 : faire un tableau récapitulatif avec Min, Mean, Max pour la colonne sélectionnée + la colonne par défaut
Étape 3 : Créer une nouvelle colonne pour le plafond
Étape 4 : Effectuez un tracé à l'aide du générateur de graphiques
Code:
dt0 = table de données actuelle();
FN = dt0 << Obtenir le nom ;
r = Dialogue de colonne(
Bin = ColList( "X, Binning By", Max Col( 1 ) ),
Overlay = ColList( "Regrouper par / Superposer par", Max Col( 1 ) ),
Split = ColList( "O, Réponse",Max Col( 5 ) ),
Compare = ColList( "X-Axis Top", Max Col( 1 ) ),
HList( "Bin Size: ", BinSize = EditNumber( .1 ) ),
);
Bin = r["Bin"] ;
Superposition = r["Superposition"] ;
Diviser = r["Diviser"] ;
Comparer = r["Comparer"] ;
BinSize = r["BinSize"] ;
dts = dt0 << Résumé(
Group(:Fixed, column(dt0,Overlay), column(dt0,Compare) ),
Moyenne ( : Rendement ),
Min ( colonne(dt0,Bin) ),
Moyenne( colonne(dt0,Bin) ),
Max ( colonne(dt0,Bin) ),
Min ( colonne(dt0,Split[1]) ),
Moyenne( colonne(dt0,Split[1]) ),
Max ( colonne(dt0,Split[1]) ),
Min ( colonne(dt0,Split[2]) ),
Moyenne( colonne(dt0,Split[2]) ),
Max ( colonne(dt0,Split[2]) ),
Min ( colonne(dt0,Split[3]) ),
Moyenne( colonne(dt0,Split[3]) ),
Max ( colonne(dt0,Split[3]) ),
Min ( colonne(dt0,Split[4]) ),
Moyenne( colonne(dt0,Split[4]) ),
Max ( colonne(dt0,Split[4]) ),
Min ( colonne(dt0,Split[5]) ),
Moyenne( colonne(dt0,Split[5]) ),
Max ( colonne(dt0,Split[5]) ),
format du nom de la colonne de statistiques( "column stat" ),
);
dts << Définir le nom (FN || " Résumé");
n_Bin = Bin[1]||" Moyenne" ;
f_Bin = Colonne(dts, n_Bin);
col = dts << Nouvelle colonne("Binning", Numérique, Continu);
Eval( Parse( Eval Insert( "col << Set Formula(Ceiling( ^f_Bin^ / ^BinSize^) * ^BinSize^)" )) );
Re : Créer une nouvelle colonne avec des variablesNon. La formule Eval est censée être équivalente pour autant que je sache.
Essayez de séparer la nouvelle colonne et définissez la formule dans des expressions distinctes :
dt = Ouvrir ( "$SAMPLE_DATA/Grande classe.jmp" ) ;
cols = Boîte de dialogue Colonne (
Col1 = ListeCol ( "X" , Col max ( 1 ) , Type de données ( numérique ) ) ,
Col2 = ListeCol ( "O" , Col max ( 1 ) , Type de données ( numérique ) )
) ;
XXColonne = cols [ "Col1" ][ 1 ] << obtenir le nom ;
Taille = cols [ "Col2" ][ 1 ] << obtenir le nom ;
col = dt << Nouvelle colonne ( "maNouvelleColonne" , Numérique , Continu ) ;
Éval ( Analyser ( Insertion d'évaluation ( "col << Définir la formule(Plafond( ^XXColonne^ / ^Taille^) * ^Taille^)" ) ) ) ;
col << formule d'évaluation ;
Re : Créer une nouvelle colonne avec des variablesÇa ne fonctionne pas. Le résultat toujours le même.
En JSL, appliquer le bouton == ? sais-tu?
Re : Créer une nouvelle colonne avec des variablesEssayez la formule <
Éval ( Analyser ( Insertion d'évaluation ( "dt << Nouvelle Colonne(\!"maNouvelleColonne\!", Numérique, Continu, Formule(Plafond( ^XXColonne^ / ^Taille^) * ^Taille^), < ) ) ) ;
Re : Créer une nouvelle colonne avec des variablesle mien est JMP8.0.0 Windows
avec ou sans toujours pareil. T_T
Re : Créer une nouvelle colonne avec des variablesNon, ce n'était pas prévu. Pour moi (JMP 10 pour Mac), cela fonctionne sans cliquer sur "Appliquer". Il y avait un deux-points par inadvertance avant "Ceiling..." qui restait de votre code d'origine (j'ai maintenant modifié mon code ci-dessus). Peut-être que cela aide à supprimer cela.
Re : Créer une nouvelle colonne avec des variablesMerci MS.
La nouvelle colonne créée avec la formule correcte. Mais, les lignes sont vides. Je dois aller dans la section des formules sur l'interface utilisateur et cliquer sur Appliquer, puis uniquement sur les invites de valeurs.
est-ce prévu ?
Re : Créer une nouvelle colonne avec des variablesLes variables dans les formules ne sont pas évaluées lors de leur création et doivent donc être exprimées littéralement. Une façon de contourner cela est de manipuler et d'analyser les chaînes.
Exemple:
dt = Ouvrir ( "$SAMPLE_DATA/Grande classe.jmp" ) ;
cols = Boîte de dialogue Colonne ( Col1 = ListeCol ( "X" , Col max ( 1 ) , Type de données ( numérique ) ) , Col2 = ListeCol ( "O" , Col max ( 1 ) , , Type de données ( numérique ) ) ) ;
XXColonne = cols [ "Col1" ][ 1 ] << obtenir le nom ;
Taille = cols [ "Col2" ][ 1 ] << obtenir le nom ;
Éval ( Analyser ( Insertion d'évaluation ( "dt << Nouvelle Colonne(\!"maNouvelleColonne\!", Numérique, Continu, Formule(Plafond( ^XXColonne^ / ^Taille^) * ^Taille^))" ) ) ) ;