créer une nouvelle feuille de données et y copier des valeurs dans JSL<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />salut
J'ai un jeu de données avec 50 numéros. Je veux calculer la moyenne de l'ensemble de données et placer la valeur moyenne dans une nouvelle feuille de données différente "Résumé". Encore une fois, je veux calculer la somme des 50 nombres et la placer dans la même nouvelle fiche technique "Résumé". Quelqu'un peut-il m'aider à placer ces valeurs moyennes et somme dans la nouvelle fiche technique "Résumé" ?
Merci,
Re : créer une nouvelle feuille de données et y copier des valeurs dans JSL
Merci à tous de m'avoir aidé dans les scripts JSL...vos compétences sont très appréciées !
Re : créer une nouvelle feuille de données et y copier des valeurs dans JSLSi vous ne vous souciez pas de certaines répétitions dans certains échantillons, il existe une commande SUBSET sous TABLES qui produit des échantillons aléatoires :
Sous-ensemble( Taille de l'échantillon( 10 ) )
qui devrait produire le 10 aléatoire pour chaque itération.
En ce qui concerne le résumé de chaque groupe, vous pouvez utiliser STACK COMMAND pour rassembler toutes les données tout en préservant les noms de colonne (groupe d'échantillonnage), puis appliquer soit un tableau, soit un résumé par groupe d'échantillons.
j'aimerais aussi mettre tout ça dans un script mais mon script est très lent.peut-être plus tard..
MS, excellent script propre, comme toujours.
Barry
Re : créer une nouvelle feuille de données et y copier des valeurs dans JSLDésolé, j'ai inversé la fraction. Il faut lire
fraction = k / N lignes ( dt ) ;
Cette fraction (un nombre compris entre 0 et 1) est calculée uniquement parce que la sélection aléatoire nécessite un argument de fraction.
Voici une version qui place également chaque sous-échantillon dans la table de sortie. Après les colonnes moyenne et SD, vous devriez voir dix colonnes avec les dix données choisies au hasard pour chaque itération.
dt = Tableau de données ( "Données" ) ;
k = dix ; //Définir la taille de l'échantillon
n = 100 ; //Définir le nombre d'itérations
fraction = k / N lignes ( dt ) ;
m = J ( n , 2 + k ) ; // Initier une matrice pour les moyens de détention et les SD
// Boucle : créer un sous-ensemble aléatoire n fois
Pour ( je = 1 , je <= n , je ++,
dt << sélectionner au hasard ( fraction ) ;
m [ je , 1 ] = Moyenne ( dt : Données [ dt << obtenir les lignes sélectionnées ] ) ;
m [ je , 2 ] = Dév Std ( dt : Données [ dt << obtenir les lignes sélectionnées ] ) ;
m [ je , 3 :: 2 + k ] = transposer ( dt : Données [ dt << obtenir les lignes sélectionnées ]) ;
) ;
//Déplacer les données dans une nouvelle table
dt2 = Comme tableau ( m ) ;
dt2 << définir le nom ( "Données récapitulatives" ) ;
Colonne ( dt2 , 1 ) << définir le nom ( "Moyenne" ) ;
Colonne ( dt2 , 2 ) << définir le nom ( "StdDev" ) ;
Re : créer une nouvelle feuille de données et y copier des valeurs dans JSL
Et à chaque fois si je veux voir le sous-ensemble de 10 valeurs à partir desquelles signifient et STD Dev. est calculé, puis-je avoir cette option ?
Re : créer une nouvelle feuille de données et y copier des valeurs dans JSLoui. J'ai la feuille finale, mais que fait la ligne de fraction ? Cela crée-t-il une formule pour l'échantillon aléatoire ?
Re : créer une nouvelle feuille de données et y copier des valeurs dans JSLJ'ai utilisé ce fichier lors de l'écriture du script. Je viens de coller les valeurs du fichier texte dans une nouvelle table JMP (vous pouvez également l'ouvrir depuis JMP), renommé le fichier de "untutled" à "Data" et donné à la colonne le nom "Data". Réessayer!
Re : créer une nouvelle feuille de données et y copier des valeurs dans JSLLa ligne dt2 = Comme tableau ( m ) ; crée le tableau. Que dit votre journal ?
Le script ici suppose que vous avez une table appelée "Data" et une colonne avec vos données également avec le nom "Data".
Re : créer une nouvelle feuille de données et y copier des valeurs dans JSLpouvez-vous s'il vous plaît laissez-moi comprendre avec ce fichier txt. Désolé, mais je ne suis pas très habitué à JSL,
Re : créer une nouvelle feuille de données et y copier des valeurs dans JSLd'une manière ou d'une autre, je ne pouvais pas voir le tableau final avec les moyennes et les écarts-types... où est-il créé ?
Re : créer une nouvelle feuille de données et y copier des valeurs dans JSLVoici une façon. La boucle remplit progressivement une matrice qui est convertie en table de données à la fin.
dt = Tableau de données ( "Données" ) ;
k = dix ; //Définir la taille de l'échantillon
n = 100 ; //Définir le nombre d'itérations
fraction = 1 - k / N lignes ( dt ) ;
m = J ( n , 2 ) ; // Initier une matrice pour les moyens de détention et les SD
// Boucle : créer un sous-ensemble aléatoire n fois
Pour ( je = 1 , je <= n , je ++,
dt << sélectionner au hasard ( fraction ) ;
m [ je , 1 ] = Moyenne ( dt : Données [ dt << obtenir les lignes sélectionnées ] ) ;
m [ je , 2 ] = Dév Std ( dt : Données [ dt << obtenir les lignes sélectionnées ] ) ;
) ;
//Déplacer les données dans une nouvelle table
dt2 = Comme tableau ( m ) ;
dt2 << définir le nom ( "Données récapitulatives" ) ;
Colonne ( dt2 , 1 ) << définir le nom ( "Moyenne" ) ;
Colonne ( dt2 , 2 ) << définir le nom ( "StdDev" ) ;
Re : créer une nouvelle feuille de données et y copier des valeurs dans JSLoui, je veux savoir comment créer des échantillons de 10 et si je devais créer ces échantillons de 10 plusieurs fois (disons plus de 100), dois-je l'écrire en boucle ? Comment utiliser la boucle ici pour créer des échantillons de 10 fois plusieurs ?
Re : créer une nouvelle feuille de données et y copier des valeurs dans JSLJe regardais votre deuxième message - c'est la même idée mais je créerais un nouveau tableau rassemblant les échantillons de 10 en colonnes puis produirais un résumé une seule fois.si personne d'autre ne répond à cela, je répondrai à cela plus tard dans la journée après avoir pris soin des personnes qui paient mes factures (beaucoup d'attente )
Re : créer une nouvelle feuille de données et y copier des valeurs dans JSLEn fait, je voulais faire ceci :-j'ai posté cette question dans le forum aussi..
J'ai un ensemble de données avec 1000 variables, des nombres continus. Je veux prendre un sous-ensemble aléatoire de l'ensemble de données et calculer la moyenne et l'écart type du sous-ensemble et le placer dans un fichier Excel séparé "B". Je veux répéter ce processus - processus consistant à prendre le sous-ensemble de taille 10 de l'ensemble de données d'origine avec 1000 variables et à calculer la moyenne et l'écart type et à le placer dans le même fichier Excel "B". La feuille Excel finale contiendra toutes les moyennes et les écarts-types.
Je ne sais pas très bien si le script que vous m'avez donné peut aider à créer une nouvelle feuille dans la question ci-dessus.
j'ai joint mon exemple de fiche technique ..
Re : créer une nouvelle feuille de données et y copier des valeurs dans JSLVoulez-vous vraiment faire cela en JSL - c'est-à-dire créer un script que vous pouvez exécuter pour produire le résumé ? Si vous voulez le faire une seule fois de manière interactive ?Je répondrai aux deux :
De manière interactive :
Créez votre table de données - dans ce cas, je l'appelle RawData,
Cliquez sur Tableau >> Tabuler
Cliquez sur Données, puis sur Moyenne et faites-les glisser vers la zone de sortie
Cliquez sur Sum et faites-le glisser vers la zone de sortie
Cliquez sur le triangle rouge du rapport >> Transformer en tableau de données, ou utilisez simplement le rapport directement (Couper et Coller)
Utiliser JSL
Après avoir créé ce qui précède à l'aide de Make Into Data Table, nommez la table (le rapport de synthèse est utilisé ici)
Cliquez sur le triangle rouge >> Copier le script
Créer un nouveau script (Fichier>>Nouveau>>Script)
Collez votre script nouvellement copié dans la nouvelle fenêtre de script
Fermez votre rapport de synthèse précédent
Exécutez le script que vous venez de créer
Le rapport de synthèse devrait apparaître
Un exemple que j'ai fait avec des données aléatoires :
Scénario:
Nouveau tableau( "Rapport de synthèse",
Ajouter des lignes ( 1 ),
Nouveau Scénario(
"Source",
(Table de données( "RawData" ) << Tabuler(
Ajouter un tableau(
Tableau de colonnes (Statistiques (Moyenne, Somme), Colonnes d'analyse ( :Données ) )
)
)) << Transformer en tableau de données
),
Nouvelle colonne( "Moyenne(Données)",
numérique,
Continu,
Format( "Meilleur", 5 ),
Définir les valeurs( [171.936] )
),
Nouvelle colonne( "Somme(Données)",
numérique,
Continu,
Format( "Meilleur", 5 ),
Définir les valeurs( [8596.8] )
)
)
Envoyez-moi un message si vous voulez mes exemples de fichiers.
Barry