Compter la valeur en plusieurs caractères et marquer la position ?Salut, comment puis-je compter le nombre 0,1,2 de la colonne 1 caractéristique comme ci-dessous ? Merci beaucoup! (x = manquant)
| Modèle | Compter 0 | Compte 1 | Compte 2 | Poste 0 | Poste 1 | Poste 2 |
| x,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0 | 26 | 1 | 0 | 2,3,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27, 28 | 4 | 0 |
| 2,2,2,2,2,0,0,0,0,0,0,1,1,1,2,0,1,1,1,2,2,2,0,0,0, 0,0,0 | | | | | | |
| 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1, 1,1,0 | | | | | | |
| 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, 1,0,1 | | | | | | |
| 2,2,2,2,2,2,2,2,0,2,2,2,0,0,0,1,2,2,2,2,2,2,2,2,2, 2,2,2 | | | | | | |
Analyse et modélisation des données de baseRe : Compter la valeur en plusieurs caractères et marquer la position ?Loc() peut vous obtenir les indices. Vous trouverez ci-dessous une solution rapide et sale
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(5),
Compress File When Saved(1),
New Column("Pattern",
Character,
"Nominal",
Set Values(
{"x,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0",
"2,2,2,2,2,0,0,0,0,0,0,1,1,1,2,0,1,1,1,2,2,2,0,0,0,0,0,0",
"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,0",
"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1",
"2,2,2,2,2,2,2,2,0,2,2,2,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2"}
)
)
);
vals = {"0", "1", "2"};
For Each({val}, vals,
new_col1 = dt << New Column("Count " || val, Numeric, Continuous, Formula(
N Items(Loc(Words(:Pattern, ","), val));
));
new_col2 = dt << New Column("Position " || val, Character, Nominal, Formula(
Char(Substitute(Char(Loc(Words(:Pattern, ","), val);), "[", "", "]", "", " ", ""));
));
dt << run formulas;
new_col1 << delete formula;
new_col2 << delete formula;
);Re : Compter la valeur en plusieurs caractères et marquer la position ?Salut Jthi,
Merci pour votre aide. Mais si j'ai plusieurs lignes, puis-je utiliser la matrice ou une autre commande au lieu de
Set Values(
{"x,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0",
"2,2,2,2,2,0,0,0,0,0,0,1,1,1,2,0,1,1,1,2,2,2,0,0,0,0,0,0",
"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,0",
"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1",
"2,2,2,2,2,2,2,2,0,2,2,2,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2"}Merci!
Re : Compter la valeur en plusieurs caractères et marquer la position ?Obtenez la référence à votre table de données vers la variable dt (par exemple Open() renverra une référence à la table qui a été ouverte) et le script devrait fonctionner tant que la colonne est nommée Pattern
Re : Compter la valeur en plusieurs caractères et marquer la position ?Merci, mais je veux dire que j'ai 6453 lignes (dont je dois copier toutes les données dans "set value { }". Pourriez-vous s'il vous plaît me fournir une meilleure solution à ce problème ? Merci beaucoup.
Re : Compter la valeur en plusieurs caractères et marquer la position ?Vous n'avez pas besoin de copier quoi que ce soit. Obtenez simplement une référence à votre table de données.
dt = Open("pathtomytable");
ou
dt = Datatable("mytablename")
ou (généralement une mauvaise option mais fait ce dont vous avez besoin de temps en temps)
dt = Current Data Table();
Vous utilisez celui qui correspond à vos besoins pour remplacer cette partie de ma solution
dt = New Table("Untitled",
Add Rows(5),
Compress File When Saved(1),
New Column("Pattern",
Character,
"Nominal",
Set Values(
{"x,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0",
"2,2,2,2,2,0,0,0,0,0,0,1,1,1,2,0,1,1,1,2,2,2,0,0,0,0,0,0",
"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,0",
"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1",
"2,2,2,2,2,2,2,2,0,2,2,2,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2"}
)
)
);
Voir plus...For example
Names Default To Here(1);
dt = Current Data Table();
vals = {"0", "1", "2"};
For Each({val}, vals,
new_col1 = dt << New Column("Count " || val, Numeric, Continuous, Formula(
N Items(Loc(Words(:Pattern, ","), val));
));
new_col2 = dt << New Column("Position " || val, Character, Nominal, Formula(
Char(Substitute(Char(Loc(Words(:Pattern, ","), val);), "[", "", "]", "", " ", ""));
));
dt << run formulas;
new_col1 << delete formula;
new_col2 << delete formula;
);
Re : Compter la valeur en plusieurs caractères et marquer la position ?Salut Jarmo,
Merci beaucoup. C'est du travail.
Re : Compter la valeur en plusieurs caractères et marquer la position ?Êtes-vous en train de dire que vos données réelles se trouvent actuellement dans une matrice JMP, et non dans une table de données JMP ?
Re : Compter la valeur en plusieurs caractères et marquer la position ?Salut Jim,
C'est ma faute, compris. Mes données sont sur la table JMP. Cela a déjà fonctionné, a conseillé Jarmo. De plus, avez-vous une idée pour mettre les données dans la colonne "motif" pour les regrouper dans les mêmes groupes ?. telles que les positions 1 à 5 avec la valeur de 1 sont identiques aux positions 6 à 8 avec la valeur de 1. (comment générer le même modèle de valeur dans plusieurs positions ?)
| Modèle | Nom du motif |
| 0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0 | 1 |
| 0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0 | 1 |
| 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0 | 2 |
| 0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0 | 2 |
| 0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0 | 2 |
| 0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0, 0,0,0 | 2 |
| 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0, 0,0,0 | 2 |
| 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1, 0,0,0 | 2 |
| 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 1,1,1 | 2 |
| 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 2,2,2 | 3 |
| 0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,0,0,0,0,0,0,0,0, 0,0,0 | 3 |
| 0,1,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,0,0,0,0,0,0,0,0, 0,x,0 | 4 |
| 0,0,0,1,0,0,0,0,0,0,0,2,2,2,2,2,2,0,0,0,0,0,0,0,0, 0,0,0 | 4 |
| 1,0,0,0,0,1,0,0,0,0,0,2,2,2,2,2,2,0,0,0,0,0,0,0,0, 0,0,0 | 4 |
Re : Compter la valeur en plusieurs caractères et marquer la position ?Il existe différentes manières de procéder.
- Utilisez Recode pour créer une nouvelle colonne qui contiendra les nouvelles valeurs de groupe.
- Définissez la propriété de colonne de la colonne de comptage appelée Étiquettes de valeur et utilisez l'option "Autoriser les plages" pour modifier les valeurs affichées.
- Write a little script that creates a new column and does the binning
Names Default To Here( 1 );
dt = Current Data Table();
dt << New Column( "Count 1 Bins",
character,
set each value(
If(
:Count 1 <= 5, "1-5",
:Count 1 <= 10, "6-10",
:Count 1 <= 15, "11-15"
)
)
);
Re : Compter la valeur en plusieurs caractères et marquer la position ?Salut Jim,
Merci beaucoup, mais quand j'essaye 1 et 2, cela semble difficile à cause du grand nombre de lignes de données (6000+). La 3 dose ne fonctionne pas car elle comporte plusieurs motifs (modèle 2000 de 28 positions sur 6000 rangées).
Cordialement,
Théerachai
Re : Compter la valeur en plusieurs caractères et marquer la position ?Mon malentendu. Maintenant, ma réponse est que je suis sûr que JMP peut faire ce que vous voulez....... si vous pouvez définir les règles sur la façon de déterminer ce qu'est un groupe ?
Re : Compter la valeur en plusieurs caractères et marquer la position ?Salut Jim, Merci, j'essaie de combiner le modèle de données. En général, mes positions de données 1-5, 6-9,10-11,12-17, 18-22, 23-25 et 26-28 sont les mêmes catégories si elles ont les mêmes 0-2 points (sans fixer position dans chaque catégorie) en plus, parfois, les catégories seraient 11-17, 1 5 6 8 13 18 23 26, 2 7 19 24 25 27 28, 3 9, 4 20 22 et 21. Et je veux trouver d'autres modèles dans toutes les données. Pourriez-vous s'il vous plaît me guider ?
Merci!
Re : Compter la valeur en plusieurs caractères et marquer la position ?Je reste confus. Vous avez joint un exemple de tableau de données. Pourriez-vous s'il vous plaît prendre une ou plusieurs lignes spécifiques de l'exemple de tableau de données et parcourir la logique sur la façon dont vous analyseriez les données de la ligne ?