Problème lors de la conversion des colonnes de caractère en numérique<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Bonjour à tous,
ceci est mon premier message - j'essaie d'automatiser le traitement des données où je reçois des données sous forme de feuilles de calcul Excel... Il y a un onglet dans le classeur avec toutes les informations pertinentes.
JMP semble importer une grande partie des données sous forme de caractères, pas numériques, et je peux convertir les données en numérique manuellement dans la table (manière habituelle) mais pas avec un script :
Des idées?
merci
À M
Définir le répertoire actuel ("C:\JDSU\ServerCopy\Data\Caractérisation post-traitement\Flash IV\AWSC");
dt=ouvrir(); // c'est le seul moyen que j'ai trouvé pour me permettre de sélectionner la feuille de calcul pertinente "Trier les données" dans le fichier .xls
tables = ntable();
OpenDTs = List();
savethis = liste();
closethese = liste();
montrer(dt);
/* Je pensais que cette boucle fonctionnerait pour éliminer les tables ouvertes dont je ne veux pas, mais elle ne ferme que quelques-unes, pas toutes, des tables indésirables
pour(i=1, i<=tables, i++,
Insérer dans( openDTs, Data Table(i)<
IF(Data table(i)<
Continuer();
fermer(DataTable(i));
);
);
*/
dt<
colonne (1)<
colonne (2)<
colonne (3)<
//colonne ({3,4,5,6,7,8,9,10,11,12,13}) <
col = Nouvelle COlumn("FF_Calc", numérique);
col<
col = NOUVELLE COLONNE ("xref", caractère);
col = nouvelle colonne ("yref", caractère);
colonne("voc")<
Re : Problème lors de la conversion des colonnes de caractères en numériquesVous devez « exécuter » les formules de colonnes avant de les utiliser. Mettez cette ligne avant l'instruction for each row :
dt << exécuter des formules ;
où dt pointe vers votre table de données.
Re: Problème de conversion de colonnes de type caractère à numériqueTom, je pense que tu devrais republier ceci sur le forum JMP.
Art
Re: Problème de conversion de colonnes de type caractère à numériqueExemple de syntaxe correcte pour convertir une colonne de caractères en numérique :
colonne("voc") << Type de données( numérique );
colonne("voc") << Type de modélisation(continu); // si vous souhaitez un type de modélisation continu
ou
dt:voc << etc...
Il semble que votre instruction « if » ait besoin d'une virgule après « continue »...
Re: Problème de conversion de colonnes de type caractère à numériqueMerci beaucoup.
Auriez-vous une idée de pourquoi une boucle for each row() fonctionne correctement si je l'exécute en la sélectionnant puis en faisant Ctrl+R dans la fenêtre JSL, mais pas lorsqu'elle est exécutée dans le cadre du script complet ?
col = Nouvelle COLumn("FF_Calc", numérique) << Type de modélisation ( continu );
col<
Nouvelle colonne("xref", Caractère, Ordinal, Formule(Si(Droite(Gauche(:Nom("Xref-Yref"), 2), 1) == "-", Gauche(:Nom("Xref-Yref"), 1), Gauche(:Nom("Xref-Yref"), 2))), Définir la propriété("Ordre des valeurs", {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16"}));
Nouvelle colonne("yref", Caractère, Ordinal, Formule(Si(Gauche(Droite(:Nom("Xref-Yref"), 2), 1) == "-", Droite(:Nom("Xref-Yref"), 1), Droite(:Nom("Xref-Yref"), 2))), Définir la propriété("Ordre des valeurs", {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16"}));
pour chaque ligne (
si (:FF_Calc < 0, rowstate() = état exclu(1), :FF_calc > 1, rowstate() = état exclu(1), rowstate() = état exclu(0)
);
);
pour chaque ligne (
si(dt:FF_Calc < 0, rowstate() = état exclu(1), dt:FF_Calc > 1, rowstate() = état exclu(1), rowstate() = état exclu(0)
);
); // Aucune de ces commandes ne fonctionne dans le script, mais elles fonctionnent correctement si elles sont exécutées manuellement. Dois-je sélectionner la table ou quelque chose de ce genre ?
Re: Problème de conversion de colonnes de type caractère à numériqueBingo !
Merci beaucoup!
Re: Problème de conversion de colonnes de type caractère à numériqueComment cela ne fonctionne-t-il pas ? Recevez-vous un message d’erreur ou simplement un résultat incorrect ?
Quoi qu'il en soit, la variable de colonne `col` n'est pas correctement initialisée. Vous devez envoyer le message de type de modélisation soit dans une instruction séparée, soit dans `New Column()`. Une fois initialisée, vous pourrez utiliser `col` à la place de `:FF_Calc`.
Par exemple
col = Nouvelle colonne ( "FF_Calc" , numérique , continu ) ;
col << définir les valeurs ( { - 1 , 0 , 1 , 2 } ) ;
Pour chaque ligne (
Si(
col < 0 , État de la ligne () = État exclu ( 1 ) ,
col > 1 , État de la ligne () = État exclu ( 1 ) ,
État de la ligne () = État exclu ( 0 )
)
);