Trouver une colonne dont le nom nécessite une chaîne d'une autre colonneJ'essaie d'utiliser une valeur d'une colonne nommée « Freq » et de trouver une autre colonne. J'obtiens une erreur Ligne non valide
La colonne que je recherche est disponible. La colonne Freq est numérique. Est-ce le problème ?
Par exemple, la valeur dans une ligne de la colonne Freq est 200 alors je recherche la valeur dans IDynatTsense__200__65 .
Code:
HashFreqval = Colonne ( "Freq" );
IDyn = Colonne ( "IDynatTsense__" ||HashFreqval[]|| "__65" );
Erreur:

Analyse et modélisation de données de baseRe: Trouver une colonne dont le nom nécessite une chaîne d'une autre colonnecolumn[] renvoie la valeur de la ligne actuelle() .
La valeur par défaut de row() est 0. Pour accéder à la valeur de la ligne 1, ajustez simplement le pointeur via row()=1 ;
New Table( "test",
Add Rows( 1 ),
New Column( "Freq",
Character,
Set Values( {"200"} )
),
New Column( "IDynatTsense__200__65",
Set Values( [20] )
)
);
HashFreqval = Column( "Freq" );
row()=1;
IDyn = Column( "IDynatTsense__"||HashFreqval[]|| "__65" );Re: Trouver une colonne dont le nom nécessite une chaîne d'une autre colonneL'erreur est causée par ce que hogi a écrit, column()[] (identique à column()[row()]) recherche une valeur de la ligne actuelle qui par défaut est 0 dans JMP, ce qui est un numéro de ligne non valide (vous pouvez en savoir plus sur Iterate on Rows in a Table (jmp.com) ).
Comment utilisez-vous ce code ? Il est fort probable que ce ne soit pas l'intégralité du code que vous utilisez ? Vous recherchez une valeur de « Freq » mais de quelle ligne et vous les bouclez peut-être ? Essayez-vous d'obtenir une valeur de IDynatTsense__200__65 (quelle ligne ?) ou simplement de la référence ?
Re: Trouver une colonne dont le nom nécessite une chaîne d'une autre colonnePeut-être que ma question n'est pas très claire. Je joins un exemple simple
En fonction de la valeur de la colonne HashFreq, je dois sélectionner les données de la colonne Idyn_ 200 _65 ou Idyn_ 400 _65.
Une fois que j'obtiens ces données, je peux utiliser une formule pour effectuer d'autres calculs.
Names Default To Here( 1 );
dt1 = Open( "TestDataJunk.jmp" );
HashFreqval = Column( "HashFreq" );
IDyn = Column( "IDynatTsense__"||HashFreqval[]|| "__65" );
dt1 << New Column( "NewVal", Numeric, Continuous, Formula( IDyn[] ));
Merci pour votre aide!
Re: Trouver une colonne dont le nom nécessite une chaîne d'une autre colonneSi vos données sont beaucoup plus complexes et que vous n'avez pas besoin d'une formule, j'utiliserais probablement simplement For Each Row
Names Default To Here(1);
dt = Open("$DOWNLOADS/TestDataJunk.jmp");
dt << New Column("NewVal2", Numeric, Continuous);
For Each Row(dt,
val = Column(dt, "HashFreq")[Row()];
val_col = Eval Insert("Idyn_^val^_65");
Column(dt, "NewVal2")[Row()] = Column(dt, val_col)[Row()];
);