Re : Rechercher la chaîne dans la colonne et copier la valeur numérique dans la 2e colonneVoici un exemple de fonctionnement pour apprendre :
Names Default to Here( 1 );
// open reference data table
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// make container for lookup
lookup = Associative Array();
// get names and ages for lookup
For Each Row(
Insert Into( lookup, dt:name, dt:age );
);
Close( dt, No Save );
// open new table (use Big Class again, delete existing age column)
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Delete Columns( :age );
// make new age column and populate it using lookup table
dt << New Column( "new age", "Numeric", "Continuous" );
For Each Row(
:new age = lookup[ :name ];
);
Re : Rechercher la chaîne dans la colonne et copier la valeur numérique dans la 2e colonneAlors que @Mark_Bailey suggestion d'utiliser un tableau associatif, fonctionnera, je pense qu'une simple jointure résoudra probablement le problème.
- Ouvrir la table JMP avec 10 000 lignes
- Ouvrir dans JMP, le fichier Excel
- En utilisant la table JMP d'Excel comme table de base, utilisez
- Tables ==> Mettre à jour pour faire correspondre les noms et ajouter les âges à la table de base
- Enregistrez le tableau mis à jour sous forme de fichier Excel
Je vous conseille de prendre le temps de lire les documentations "Découvrir JMP" et "Utiliser JMP"
Aide==>Bibliothèque de documentation JMP
Re : Rechercher la chaîne dans la colonne et copier la valeur numérique dans la 2e colonneSalut Mark,
Merci pour les suggestions. Je suis nouveau sur JMP, pourriez-vous me suggérer comment commencer ?
Re : Rechercher la chaîne dans la colonne et copier la valeur numérique dans la 2e colonneCe cas serait un bon moment pour importer le classeur Excel avec les noms et les âges, puis les charger dans un tableau associatif pour la recherche.
Re : Rechercher la chaîne dans la colonne et copier la valeur numérique dans la 2e colonneSalut Txnelson,
Le fichier JMP comporte 10 000 lignes et 2 colonnes. Le nom de la 1ère colonne est Personne et le 2ème est l'âge. Oui, il peut être utilisé pour trouver la table de données t hat a l'âge d'un prénom dans la feuille de calcul Excel.
Le fichier de données JMP comporte 10 000 lignes ayant des noms et des âges différents (chaînes et nombres)
Le nom et l'âge de la personne sont répertoriés dans le fichier de données JMP.
J'ai un fichier Excel qui a deux colonnes et 500 lignes, la 1ère colonne contient le nom des personnes et la 2ème contient les âges. J'essaie d'écrire un script qui recherchera les 500 données (nom de la personne) d'Excel dans le fichier de données JMP et copiera la valeur d'âge correspondant au nom de la personne dans le fichier Excel.
Re : Rechercher la chaîne dans la colonne et copier la valeur numérique dans la 2e colonneVous disposez de 10 000 tableaux de données JMP... n'est-ce pas ?Quels sont les noms des tables de données ?Cela peut-il être utilisé pour déterminer comment trouver la table de données qui a l'âge d'un nom donné dans la feuille de calcul Excel ?
Pouvez-vous fournir des informations sur les données contenues dans les 10 000 tables de données JMP, et comment obtenez-vous l'âge à partir de la table de données, une fois que vous avez trouvé la bonne table de données JMP ?
Plus de détails sont vraiment nécessaires avant de pouvoir tenter de résoudre votre problème.
Re : Rechercher la chaîne dans la colonne et copier la valeur numérique dans la 2e colonneOui, c'est l'approche la plus simple, mais le problème est que le fichier de données JMP contient 10 000 ensembles de données de noms différents et que la feuille Excel contient 500 noms aléatoires à partir de 10 000 ensembles de données du fichier jmp. Je veux donc quelque chose qui puisse rechercher ces noms particuliers dans Excel et au-delà de l'âge du fichier de données jmp
Re : Rechercher la chaîne dans la colonne et copier la valeur numérique dans la 2e colonneEn supposant que la liste de 500 noms se trouve dans une table de données JMP et que vous disposez de ce fichier csv avec les noms et les âges, vous pouvez facilement saisir le fichier csv, puis utiliser
Tableaux==>Rejoindre
pour faire correspondre la table de données nom/âge à la table avec la liste de 500 noms.
Re : Rechercher la chaîne dans la colonne et copier la valeur numérique dans la 2e colonneSalut Mark,
J'ai une tâche similaire, mais ma "clé" est un type de données continu.
Dans Excel, il est très facile de créer une table de correspondance et de l'utiliser pour transformer des caractéristiques hautement non linéaires.
Dans ce cas, il s'agit des données de tension de la batterie pour les estimations de l'état de charge (SoC) et vice versa. Donc, je voudrais convertir par exemple une table de données avec des données de tension mesurées en estimations de SoC. Un défi est que ma table de consultation peut/n'aura pas tous les nombreux niveaux de tension existant dans les données, j'ai donc besoin du SoC correspondant au niveau de tension le plus proche. Par exemple, les données de tension sont de 3,801 V et la table de consultation a 3,800 V comme le plus proche et un SoC correspondant de 51 %.
Parfois, ma tâche consiste à convertir "à l'envers" (SoC => tension), mais j'espère pouvoir créer cette solution par moi-même avec une bonne inspiration 
BR, Kim.
Re : Rechercher la chaîne dans la colonne et copier la valeur numérique dans la 2e colonneSi je comprends bien ce que vous voulez faire (essentiellement joindre par distance minimale), il existe plusieurs façons de le faire (kdtable, vptree, loc, distance, addins, ...). Ci-dessous un exemple
Names Default To Here(1);
dt_lookup = New Table("Untitled",
Add Rows(3),
Compress File When Saved(1),
New Column("Column 1", Numeric, "Continuous", Format("Best", 12), Set Values([3.8, 4.8, 4])),
New Column("Column 2", Numeric, "Continuous", Format("Best", 12), Set Values([50, 52, 51]))
);
dt = New Table("Untitled",
Add Rows(3),
Compress File When Saved(1),
New Column("Column 1", Numeric, "Continuous", Format("Best", 12), Set Values([3.801, 4.801, 4.000, 3.7, 4.802, 4.799]))
);
lookup_values = Column(dt_lookup, "Column 2") << get values;
search_values = Column(dt_lookup, "Column 1") << get values;
dt << New Column("Column 2", Numeric, Continuous, << Set Each Value(
As Constant(tab = KDTable(search_values););
{rows, dist} = tab << K nearest rows(1, Matrix(:Column 1));
lookup_values[rows[1]];
));
Voici quelques démonstrations pour d'autres options utilisant des matrices
Names Default To Here(1);
lookup_values = [50, 52, 51];
search_values = [3.8, 4.8, 4];
search_val = 4.3;
// These should return row from dt_lookup
kdt = KDTable(search_values);
{kd_rows, kd_dist} = kdt << K nearest rows(1, Matrix(search_val));
vpt = VPTree(search_values);
{vp_rows, vp_dist} = vpt << K nearest rows(1, Matrix(search_val));
dist = Distance(search_values, Matrix(search_val));
lmin_dist = LocMin(dist);
abs_calc = Abs(search_values - search_val);
lmin_abs = LocMin(abs_calc);
show(dist, lmin_dist, abs_calc, lmin_abs, kd_rows, kd_dist, vp_rows, vp_dist);
Re : Rechercher la chaîne dans la colonne et copier la valeur numérique dans la 2e colonneinterpolate() serait également un bon choix.
Recherchez la chaîne dans la colonne et copiez la valeur numérique dans la 2ème colonneJ'ai une feuille de calcul Excel composée de deux colonnes, une colonne contient des chaînes avec le nom de la personne et l'autre colonne contient l'âge de la personne. J'ai presque une liste de 500 personnes. Existe-t-il un moyen de l'automatiser ? Comme utiliser un script pour attribuer l'âge en fonction du nom de la personne ?
Automatisation et script