Comment sous-ensemble de données avec certains en-têtes dans les lignes ?Bonjour, j'ai un Big Data qui contient des en-têtes à l'intérieur de certaines lignes. Je voulais sous-ensemble les données par en-tête avec sa valeur. Mes données ressemblent à ceci :
| En-tête 1 | Colonne 2 | Colonne 3 | Colonne 4 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| En-tête 2 | Colonne 2 | Colonne 3 | Colonne 4 |
| 2 | 2 | 2 | 2 |
| 2 | 2 | 2 | 2 |
| En-tête 3 | Colonne 2 | Colonne 3 | Colonne 4 |
| 3 | 3 | 3 | 3 |
| 3 | 3 | 3 | 3 |
| 3 | 3 | 3 | 3 |
J'ai besoin de sous-ensembles de données par en-tête, je devrais donc avoir l'en-tête 2 avec
| En-tête 2 | Colonne 2 | Colonne 3 | Colonne 4 |
| 2 | 2 | 2 | 2 |
| 2 | 2 | 2 | 2 |
En-tête 3
| En-tête 3 | Colonne 2 | Colonne 3 | Colonne 4 |
| 3 | 3 | 3 | 3 |
| 3 | 3 | 3 | 3 |
| 3 | 3 | 3 | 3 |
J'ai essayé de créer une colonne Flag, d'attribuer 1 à chaque en-tête puis de créer un sous-ensemble. Mais le résultat est incorrect car il s'agit d'un sous-ensemble 1 et d'un vide avec le sous-ensemble 1 avec tous les en-têtes. Voici ce que j'ai créé :
CSV << New Column ("Flag", Numeric);
r = CSV << getRowsWhere( Contains( :Header 1, "Header " ));
Column(CSV, "Flag")[r] = 1;S'il vous plaît, aidez-moi
Automatisation et scriptsFenêtresRe : Comment sous-ensemble de données avec certains en-têtes dans les lignes ?Déplacez l'en-tête 1 « vers le bas » à partir du nom de la colonne (s'il est présent),

créer une colonne d'indicateur avec une formule telle que
If(Starts With(:Column 1, "Header"),
flag = :Column 1
);
flag;

Vous pouvez ensuite créer un sous-ensemble en utilisant cette nouvelle colonne comme Par

Re : Comment sous-ensemble de données avec certains en-têtes dans les lignes ?Désolé, je suis un peu confus. Comment avez-vous créé la colonne Header1 ?
Re : Comment sous-ensemble de données avec certains en-têtes dans les lignes ?Utilisation des noms de colonnes -> Déplacer vers le bas

Re : Comment sous-ensemble de données avec certains en-têtes dans les lignes ?If(Starts With(:Column 1, "Header"),
flag = :Column 1
);
flag;
cool, drapeau temporaire - disponible également pour les lignes suivantes.
Re : Comment sous-ensemble de données avec certains en-têtes dans les lignes ?Vous voudrez peut-être le rendre un peu plus robuste en vous assurant qu'il a été initialisé, par exemple en utilisant As Constant() (ou If(Row() == 1,....). Dans ce cas, ce n'était pas nécessaire, donc je ne m'en suis pas soucié.
As Constant(flag = "");
If(Starts With(:Column 1, "Header"),
flag = :Column 1
);
flag;
La lisibilité pourrait également être améliorée avec quelque chose comme
As Constant(flag = "");
If(Starts With(:Header 1, "Header"),
flag = :Header 1
,
flag
)
Vous souhaitez simplement « retourner » la valeur que vous souhaitez voir dans les lignes.
Re : Comment sous-ensemble de données avec certains en-têtes dans les lignes ?Je veux dire la colonne 5, désolé pour la confusion
Re : Comment sous-ensemble de données avec certains en-têtes dans les lignes ?Après avoir corrigé les en-têtes de colonne, créez une nouvelle colonne avec une formule

Re : Comment sous-ensemble de données avec certains en-têtes dans les lignes ?Cela peut-il être fait en utilisant JSL ?
Re : Comment sous-ensemble de données avec certains en-têtes dans les lignes ?Oui. Je pense que JMP peut enregistrer toutes ces actions et vous pouvez obtenir le script à partir du journal amélioré (ou du flux de travail de construction)
Re : Comment sous-ensemble de données avec certains en-têtes dans les lignes ?Pour créer une colonne avec une formule, faites un clic droit sur les en-têtes de colonne pour ajouter une nouvelle colonne :

dans le menu des colonnes, ajoutez une formule

et collez la formule du post de @jthi .