Comment puis-je sélectionner une valeur dans une table externe en indexant les valeurs de deux colonnes de la table JMP ?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Je travaille dans une très grande table JMP. Je voudrais sélectionner une valeur dans un petit tableau bidimensionnel externe et mettre cette valeur dans une nouvelle colonne. Afin de sélectionner la valeur dans la table externe, je souhaite utiliser les valeurs de chaque ligne des deux colonnes de la table JMP actuelle comme deux indices de la petite table externe. Quelqu'un peut-il m'aider à faire ça ?
J'ai deux fichiers. Big_data_matrix contient la première colonne qui ne peut avoir que des valeurs comprises entre 1 et 24. La colonne 2 est vide. Values.jmp est un petit tableau contenant une colonne avec 24 entrées. Pour chaque ligne de Big_data_matrix, je voudrais lire la valeur dans la colonne 1, et si elle est égale à k, alors je voudrais choisir la k-ième entrée (k=1:24) parmi les valeurs. jmp et saisissez-le dans la deuxième colonne de Big_data_matrix.
Mon Big_data_matrix d'origine est très volumineux (> 1 million de lignes) et je dois le faire pour de nombreuses tables de données Big_data_matrix différentes.
C'est probablement facile à faire en jsl, mais je n'ai aucune expérience avec JSL et j'aimerais le faire dans JMP, si possible.
Merci.
Le message a été édité par : Ranjan Sonalkar
Re : Comment puis-je sélectionner une valeur dans une table externe en indexant sur les valeurs de deux colonnes de la table JMP ?MS
Merci. Solution simple et fonctionne bien.
Re : Comment puis-je sélectionner une valeur dans une table externe en indexant sur les valeurs de deux colonnes de la table JMP ?Vous pouvez utiliser l'instruction UPDATE pour mettre à jour la grande table avec les valeurs de la petite table.Voici un exemple JSL :
dt_big = Nouveau tableau ( "Big_data_matrix" ,
Ajouter des lignes ( 2400 ) ,
Nouvelle colonne ( "Première colonne" , Numérique , Continu , Format ( "Meilleur" , 12 ) )
) ;
dt_val = Nouveau tableau ( "Valeurs" , Ajouter des lignes ( 24 ) ,
Nouvelle colonne ( "Colonne 1" , Personnage , Nominal ,
Définir les valeurs ( { "AA" , "BB" , "CC" , "DD" , "EE" , "FF" , "GG" , "HH" , "II" , "JJ" , "KK" , "LL" ,
"MM" , "NN" , "OO" , "PP" , "QQ" , "RR" , "SS" , "TT" , "UU" , "VV" , "WW" , "XX" } ) ) ,
Nouvelle colonne ( "Numéro de ligne" , Numérique , Continu , Format ( "Meilleur" , 12 ) ,
Définir les valeurs ( [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , dix , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 ,
21 , 22 , 23 , 24 ] ) )
) ;
// Remplir avec des entiers aléatoires de 1 à 24
pour ( je = 1 , je <= 2400 , je ++,
colonne ( dt_big , "Première colonne" )[ je ] = rond ( uniforme aléatoire ( 1 , 24 ) , 0 ) ;
) ;
dt_big << Mise à jour (
Avec ( dt_val ) ,
Faire correspondre les colonnes ( : Première colonne = : Numéro de ligne ) ,
Ajouter des colonnes à partir de la table Mettre à jour ( : Colonne 1 )
) ;
Re : Comment puis-je sélectionner une valeur dans une table externe en indexant sur les valeurs de deux colonnes de la table JMP ?Ok, l'indexation est unidimensionnelle. Ensuite, je vous suggère d'utiliser Update.
Tout d’abord, ajoutez une deuxième colonne à Values.jmp, avec les valeurs 1 à 24. Ensuite, activez la grande table et sélectionnez Mettre à jour dans le menu des tables. Sélectionnez Values.jmp dans la zone de liste et cochez « Faire correspondre les colonnes ». Ensuite, vous faites correspondre la première colonne du grand tableau avec la colonne ID nouvellement créée dans Values.jmp.
Une nouvelle colonne avec des valeurs correspondant au nombre de la colonne 1 est alors ajoutée à la grande table (si la colonne vide 2 de la grande table reçoit le même nom que la colonne de valeurs de la petite table, cette colonne sera remplie à la place d'un nouvelle colonne).
Et oui, cela pourrait facilement être scripté.
Re : Comment puis-je sélectionner une valeur dans une table externe en indexant sur les valeurs de deux colonnes de la table JMP ?J'ai deux fichiers. Big_data_matrix contient la première colonne qui ne peut avoir que des valeurs comprises entre 1 et 24. La colonne 2 est vide. Values.jmp est un petit tableau contenant une colonne avec 24 entrées. Pour chaque ligne de Big_data_matrix, je voudrais lire la valeur dans la colonne 1, et si elle est égale à k, alors je voudrais choisir la k-ième entrée (k=1:24) parmi les valeurs. jmp et saisissez-le dans la deuxième colonne de Big_data_matrix.
Mon Big_data_matrix d'origine est très volumineux (> 1 million de lignes) et je dois le faire pour de nombreuses tables de données Big_data_matrix différentes.
C'est probablement facile à faire en jsl, mais je n'ai aucune expérience avec JSL et j'aimerais le faire dans JMP, si possible.
Merci.
Re : Comment puis-je sélectionner une valeur dans une table externe en indexant sur les valeurs de deux colonnes de la table JMP ?Voici un exemple sur la façon d'utiliser jsl pour obtenir les valeurs d'une autre table basée sur les coordonnées 2D de la table principale.
// Exemples de tableaux
dt1 = Nouveau tableau ( "Grande table" ,
Ajouter des lignes ( dix ) ,
Nouvelle colonne ( "ligne_index" , Définir les valeurs ([ 1 , 2 , 3 , 4 , 5 , 1 , 2 , 3 , 4 , 5 ])) ,
Nouvelle colonne ( "colonne_index" , Définir les valeurs ([ 1 , 2 , 3 , 1 , 2 , 3 , 1 , 2 , 3 , 1 ]))
) ;
dt2 = Nouveau tableau ( "Petite table" ,
Ajouter des lignes ( 5 ) ,
Nouvelle colonne ( "Colonne 1" , Définir les valeurs ([ 1 , 2 , 3 , 4 , 5 ])) ,
Nouvelle colonne ( "Colonne 2" , Définir les valeurs ([ 6 , 7 , 8 , 9 , dix ])) ,
Nouvelle colonne ( "Colonne 3" , Définir les valeurs ([ 11 , 12 , 13 , 14 , 15 ]))
) ;
// Ajout de nouvelles valeurs de colonnes à partir de petites tables correspondant aux deux colonnes d'index
dt1 << Nouvelle colonne ( "données" , numérique ) ;
Pour chaque ligne ( dt1 : données = Colonne ( dt2 , Évaluer ( : index_colonne []))[ : index_ligne ]) ;
Re : Comment puis-je sélectionner une valeur dans une table externe en indexant sur les valeurs de deux colonnes de la table JMP ?Bonjour,
Pourriez-vous fournir un petit exemple de vos tableaux et du résultat souhaité ?Cela devrait aider à clarifier ce que vous essayez d'accomplir.
Merci.