FOR Boucle sur chaîne de données<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Désolé si c'est une question de base folle mais je n’ai pas pu trouver de réponse à cette question (peut-être en posant la mauvaise question).
J'essaie d'écrire un script qui calculerait le N, la moyenne et la médiane d'un paramètre (données de chaîne) dans une zone géographique particulière (HUC - il s'agit d'un nombre mais défini sous forme de chaîne) groupé par années. J'ai joint quelques exemples de données pour plus de clarté, mais j'ai essentiellement plusieurs stations d'échantillonnage qui ont plusieurs paramètres sur plusieurs années. L'idée est que, pour chaque zone géographique et chaque paramètre de cette zone, trouvez chaque année les valeurs N, Moyenne et Médiane. Demandez au script d'exécuter chaque paramètre pour chaque zone.
Mes questions:
1. Suis-je sur la bonne voie?
2 Si tel est le cas, que vais-je utiliser pour les parties d'initialisation et d'itération de la boucle For?
dt = table de données ("Data_TP");
Pour (
While (paramètre = "Turbidité", HUC = "03020101"
Résumé(
Groupe (ActivYear),
N (valeur), moyenne (valeur), médiane (valeur),
nom de la table de sortie ("Test"))
// save table;
)
)
Toute aide ou suggestion de référence serait grandement appréciée!
Re: FOR Boucle sur chaîne de donnéesMME,
C'était incroyablement utile! J'essayais de le rendre beaucoup plus difficile que nécessaire. J'aurai besoin de la scinder en tables individuelles, comme demandé par le patron, mais je voulais également créer une table complète pour des raisons de base de données. Je vais donc exécuter ces deux scripts.
Cela a fonctionné parfaitement et très vite.
Merci beaucoup!
Mel
PS: J'aimerais pouvoir prendre le crédit des données, mais c'est juste une version très abrégée de ce que j'ai extrait d'EPA STORET.
Re: FOR Boucle sur chaîne de donnéesJe ne pense pas que tu aies besoin d'une boucle.
Vous pouvez grouper par plusieurs colonnes.
J'ai utilisé le "résumé" de l'interface graphique pour faire ce que je veux (je pense) et il a produit ce script:
| | Table de données ("Example_Data") << Résumé ( |
| | | Groupe (: HUC,: ActivYear,: CharacteristicName), |
| | | N (: valeur du résultat sous forme de nombre), |
| | | Moyenne (Valeur du résultat en nombre), |
| | | Médiane (: Valeur du résultat en nombre) |
| | ) |
- MK
Re: FOR Boucle sur chaîne de donnéesVous n'avez pas besoin d'une boucle pour créer un tableau récapitulatif. Le code ci-dessous vous donnera un tableau avec N, moyenne et médiane pour chaque HUC, année et variable (peut être facilement fait de manière interactive aussi: Tableaux -> Résumé)
dt = Tableau de données ( "Example_Data.jmp" ) ;
dtsum = dt << Résumé (
Groupe ( : HUC , : ActivYear , : CaractéristiqueNom ) ,
N ( : Valeur du résultat en nombre ) ,
Signifier ( : Valeur du résultat en nombre ) ,
Médian ( : Valeur du résultat en nombre )
) ;
// Cependant, si votre objectif est d'obtenir une table distincte pour chaque combinaison, vous n'avez toujours pas besoin de boucler. Vous pouvez créer des sous-ensembles avec une ou plusieurs colonnes. Par exemple
dtsum << Sous-ensemble (
Par ( : CaractéristiqueNom ) ,
Toutes les lignes ,
Colonnes sélectionnées uniquement ( 0 ) ,
) ;
Mais n'essayez PAS ceci avec l'exemple de table si vous ne voulez pas que l'écran soit encombré de tables de données. (Si cela se produit, lancez
ferme tout ( tableaux de données ) fermer toutes les tables avec une seule commande).
Mais bien sûr, il est également possible d'extraire les données une combinaison à la fois dans une boucle imbriquée. le résumer la commande est assez pratique mais je ne pense pas que cela supporte la médiane. Cependant, il peut toujours être utilisé pour générer les listes à parcourir. Je n'ai pas le temps de donner un exemple maintenant, mais peut-être plus tard s'il y a un intérêt
Btw, bel ensemble de données. J'utilise aussi JMP pour évaluer les données de surveillance.