Enregistrement de la table de données avec les colonnes transposéesJ'ai été coincé pour essayer d'obtenir une table de données à enregistrer correctement après avoir transposé les colonnes. J'ai une table de données avec des limites de spécifications dans les trois premières lignes et je souhaite les enregistrer dans un fichier séparé pour pouvoir utiliser ce fichier en tant que fichier de limites appliqué aux données brutes dans le cadre d'un tracé de distribution de données. Chaque fois que j'ouvre le fichier SPEC LIMITS sauvegardé, il contient toujours les colonnes au format non transposé. Le tableau avec les colonnes non transposées et le tableau avec les colonnes transposées sont ouverts à l'écran:
dt = ouvert (chemin); // Je sélectionne le fichier dans le fichier de données à ouvrir. Les limites de spécifications sont dans les 3 premières lignes
x = 3; // Nombre de lignes qui ne sont pas des données brutes (et ont des limites de spécifications)
n = N ligne (dt); // Récupère le nombre total de lignes de la table
Pour (i = n, i> x, i--, // Supprime toutes les lignes commençant à la ligne 4 jusqu'à la fin du tableau.
dt << Supprimer les lignes (i);
n = dt << Obtenir les noms de colonne ();
dt << Transpose (
colonnes (n),
Tableau de sortie ("LIMITES SPEC")
)
: Label << Set Name ("Parameter");
: Ligne 1 << nom du groupe ("LSL");
: Row 2 << Set Name ("USL");
: Ligne 3 << nom du groupe ("unités");
dt << Save ("SPEC LIMITS.jmp"); // N'enregistre pas la table de données avec les colonnes de table transposées.
J'ai également essayé de sauvegarder la table dans le cadre d'une instruction rapprochée et obtenu le même résultat:
close (dt, Save ("SPEC LIMITS.jmp"));
Je suis sûr qu'il existe une explication simple, mais que faut-il pour sauvegarder le tableau avec les colonnes transposées? Je vous remercie!
Re: Sauvegarder la table de données avec les colonnes transposéesMerci pour la clarification... Je veux bien essayer
Re: Sauvegarder la table de données avec les colonnes transposées1. @stephen_pearson le code est une excellente amélioration par rapport à @JensRiege code. Cependant, la source du problème avec le code original, bien que corrigée dans @stephen_pearson code, n'a pas été annoté dans le nouveau code.
Le problème principal lié à l’échec de l’enregistrement du code était que la variable "dt" était utilisée lors de l’enregistrement du tableau de données.
dt << Save("SPEC LIMITS.jmp");
"dt" pointe vers la table de données d'origine et lorsque la table de données transposée a été créée,
dt << Transpose(
columns(n),
Output Table( "SPEC LIMITS" )
);
apparemment, on a supposé que la variable "dt" indiquerait maintenant le nouveau tableau de données.
@stephen_pearson crée correctement une nouvelle colonne "dt2" vers la nouvelle table créée par "Transpose", puis l'utilise dans la fonction "Enregistrer"
dt2 = dt << Transpose(
columns(n),
Output Table( "SPEC LIMITS" )
);
:Label << Set Name( "Parameter" );
:Row 1 << Set Name( "LSL" );
:Row 2 << Set Name( "USL" );
:Row 3 << Set Name( "Units" );
dt2 << Save("$DESKTOP\SPEC LIMITS.jmp");<BR /><BR />
Votre code d'origine devrait fonctionner si vous avez ajouté le descripteur "dt2" à votre Transpose () et modifié la référence "dt" de votre fonction Save à "dt2"
Re: Sauvegarder la table de données avec les colonnes transposéesEssaye ça:
dt = currentdatatable(); // I select the file to data file to open. Spec limits are in first 3 rows
x = 3; // Number of rows that are not raw data (and have spec limits)
dt << select where(Row()>x);
dt << delete rows;
n = dt << Get Column Names("Numeric");
dt2 = dt << Transpose(
columns(n),
Output Table( "SPEC LIMITS" )
);
:Label << Set Name( "Parameter" );
:Row 1 << Set Name( "LSL" );
:Row 2 << Set Name( "USL" );
:Row 3 << Set Name( "Units" );
dt2 << Save("$DESKTOP\SPEC LIMITS.jmp"); // Save data table with table columns transposed.1) Suppression simplifiée des lignes
2) Obtenez uniquement les noms de colonnes numériques. S'il existe également des colonnes de caractères, la transposition échouera si les types de données des colonnes de données sont différents.
3) Spécifiez un emplacement pour enregistrer le fichier ($ HOME, $ TEMP sont également des options à explorer). Si tu ne le fais pas:
Problème I / O.
Impossible d'ouvrir en mode ReadWrite.
Le système ne peut pas trouver le fichier spécifié.
Impossible de sauvegarder le fichier.