Répartition du tableau à cellule uniqueJ'essaie d'analyser les données de l'un des sous-composants de l'appareil que fabrique mon entreprise. Malheureusement, les données utiles réelles sont enregistrées dans une table qui est condensée dans une seule cellule de la base de données (voir ci-dessous). Existe-t-il un moyen de diviser ces données en colonnes et lignes séparées tout en conservant toutes les autres données (par exemple, attribuer le même numéro de série à toutes les nouvelles lignes de données)?
Merci!
David

AnalytiqueTableau de donnéesRe: Répartition du tableau à cellule uniquevous pouvez prendre la valeur comme celle-ci, 11.000,0.00,0.050,0.001, PASS, 11.047, -156, cette colonne et utiliser Colonnes> Utilitaires> Texte en colonnes pour créer des colonnes séparées pour les différentes choses de cette colonne.
Utilisez les délimiteurs, -
et cela vous donnera des colonnes comme celle-ci:
11000 0,00 0,050 0,001 PASS .. etc.
si vous voulez le décomposer plus ou différemment, vous pouvez utiliser un séparateur ou un espace différent.
J'espère que c'est ce que vous essayiez de faire.
Re: Répartition du tableau à cellule uniqueJe pense que notre poste a été croisé. Donc, après avoir utilisé le texte en colonnes, utilisez maintenant Tables Transpose et vous pouvez retourner le tableau et obtenir les données en colonnes.
Re: Répartition du tableau à cellule uniqueMandy,
Merci pour le conseil! J'ai découvert l'utilitaire Text to Columns juste avant de publier ce message, mais cela a créé 84 nouvelles colonnes par ligne et perdu la fonctionnalité des données tabulées que j'essaie d'utiliser. Je construis un exemple de ce que je voudrais que la sortie soit et je l'ai ajouté à mon message d'origine.
Merci!
Re: Répartition du tableau à cellule unique
Re: Répartition du tableau à cellule uniqueHmmm ... Je ne dois pas décrire ce que j'essaie de faire correctement. J'ai mis à jour ma question initiale avec un exemple avant / après pour essayer une meilleure illustration. De plus, j'ai une base de données de 14 000 FunctionalTestTables pour laquelle je dois faire cela, donc faire du texte en colonnes et ensuite transposer chaque table individuelle n'est pas une option viable.
Merci de votre aide! J'apprécie vraiment cela:DRe: Répartition du tableau à cellule uniqueTout d'abord, quiconque a créé une table comme celle-ci devrait être ... eh bien ... je peux penser à des punitions appropriées.
Heureusement, je pense que JMP rendra cela relativement facile à gérer.
Tout d'abord, utilisez le Cols -> Utilitaires -> Texte dans les colonnes. . comme @Mandy_JMP suggéré, mais utilisez NEWLINE comme délimiteur.

Cela devrait vous donner une nouvelle colonne pour chaque ligne de votre colonne FunctionalTextTables.

Maintenant, utilisez Tables-> Pile pour empiler toutes les colonnes FunctionalTestTable # (ie, FunctionalTestTable 1, FunctionalTestTable 2, etc.).

Cela vous donnera une ligne pour chacune de ces colonnes.

Maintenant, vous pouvez utiliser Texte en colonnes ... encore une fois, cette fois avec une virgule (,) comme délimiteur.

Vous obtiendrez maintenant les colonnes de valeurs individuelles.

Il s'agit maintenant de copier et coller les noms des colonnes. Voici une astuce pour vous y aider Les noms de colonnes vous ont découragé? Essaye ça.Et puis, utilisez Cols-> Standardiser les attributs pour changer le type de données des colonnes en Numérique selon le cas.
Vous avez dit que vous disposiez d'une base de données de 14 000 d'entre eux. S'agit-il de 14 000 tables différentes dans la base de données ou de 14 000 lignes d'une table? Espérons que ce dernier, car vous devriez pouvoir tout obtenir dans une seule table de données JMP en utilisant File-> Database-> Open Table ...
S'il s'agit vraiment de 14k tables différentes, vous devrez utiliser Tables-> Concaténer pour les rassembler tous dans une seule table dans JMP, mais traversons ce pont après avoir confirmé qu'il se trouve dans la base de données.
Indépendamment, Sélectionnez les cellules correspondantes est un autre outil qui vous aidera à nettoyer. J'expliquerai cela dans un post de suivi après avoir fait un peu plus de progrès.
Re: Répartition du tableau à cellule uniqueSalut Jeff,
J'ai eu des mots avec l'ingénieur de test responsable, ne vous inquiétez pas: P. Il s'agit malheureusement de 14k tableaux séparés, chacun avec sa propre cellule et des en-têtes répétés dans chaque tableau. J'ai joint une image de 3 (du 14k ...). Je vais essayer votre méthode et vous dire comment ça se passe

Re: Répartition du tableau à cellule uniquesalut @dpeyer ,
Voici un complément que vous pouvez appeler pour importer les données.
Vous pouvez également exécuter le script pour importer le fichier texte dans JMP.
J'ai basé l'importation sur l'exemple de fichier texte joint.
Le script et le complément peuvent être mis à jour pour concaténer des fichiers similaires en un seul fichier.
à votre santé,
Stan
Re: Répartition du tableau à cellule uniqueHey Jeff qui a parfaitement fonctionné! J'ai une question complémentaire. Existe-t-il un moyen d'enregistrer toutes ces étapes sous forme de script pour ne pas avoir à les refaire à chaque fois que j'ai besoin d'extraire ces données? J'ai essayé de l'enregistrer en tant que script de session, mais cela n'a enregistré aucune des fractures de données.
Re: Répartition du tableau à cellule uniqueJe suis heureux d'apprendre que les données ont été mises en forme pour que vous puissiez les analyser.
Oui, vous pouvez créer un script pour le faire pour vous. Cela prendra un peu de travail, mais JMP en crée une partie pour vous.
Voici un aperçu de la façon de procéder.
JMP 15 ne capturera pas la commande Text to Columns ... mais sa syntaxe est assez simple à écrire:
// Text to columns
Data Table( "Community330288.jmp" ) <<
Text to Columns( columns( :FunctionalTestTable ), Delimiters( NEWLINE ) );
L'étape suivante est la commande Stack. JMP place le JSL pour cela dans un script appelé Source dans la table résultante.

Faites un clic droit dessus et choisissez Modifier et vous obtiendrez le script à copier et coller:
stacked_data = Data Table( "Community330288.jmp" ) << Stack(
columns(
:FunctionalTestTable 1,
:FunctionalTestTable 2,
:FunctionalTestTable 3,
:FunctionalTestTable 4,
:FunctionalTestTable 5,
:FunctionalTestTable 6,
:FunctionalTestTable 7,
:FunctionalTestTable 8,
:FunctionalTestTable 9,
:FunctionalTestTable 10,
:FunctionalTestTable 11,
:FunctionalTestTable 12,
:FunctionalTestTable 13,
:FunctionalTestTable 14
),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Name( "Non-stacked columns" )(Keep( :StationID, :StartDateTime, :Serial ))
)
L'étape suivante consiste à répéter le texte aux colonnes avec une virgule comme délimiteur:
// Text to columns
stacked_data << Text to Columns( columns( :Data ), Delimiters( "," ) );
Une autre chose que JMP n'enregistrera pas est le changement de nom des colonnes de la première ligne des données. Le changement de nom peut être scripté mais vous devrez l'écrire vous-même.
Si vous savez que le nombre de colonnes sera toujours le même (dans ce cas 7), vous pouvez le coder en dur. Si le nombre de colonnes est variable, vous devrez faire un peu plus de travail. Faites-moi savoir si c'est le cas et c'est un autre pont que nous pouvons vous aider à traverser.
for(i=1, i<=7, i++,
column("Data " || char(i))<<SET name=""></SET>
Enfin, vous devrez sélectionner les lignes contenant les noms de colonnes et les supprimer. J'ai codé en dur le nom de la colonne et la valeur ci-dessous. S'ils sont variables ... eh bien, cela prendra juste un peu plus de travail.
stacked_data << Select Where( :Pressure == "Pressure" ) << Delete Rows;
Enfin, changez certaines colonnes en numérique. Vous devrez répéter cette opération pour chaque colonne.
:Pressure << set data type(Numeric);
J'espère que cela aide.
Continuez à poser les questions.