Comment ouvrir plusieurs tables, les fusionner en mémoire et comprendre les résultats des sous-totaux?Par exemple, il existe cinq fichiers de données dans le chemin « c:\1\ » qui ressemblent à des structures « Big Class.jmp ».
Comment classer et résumer les données de la colonne « taille » par colonne « âge » pour 5 fichiers en mémoire sans « concaténer ».
Obtenez l'effet comme s'il était implémenté dans le code suivant :
dir = "c:\1\";
Fs = Files In Directory( dir );
For( d = 1, d <= 5, d++,
d1 = Open( dir || fs[d] );
If( d == 1,
d2 = d1,
d2 << Concatenate( Data Table( d1 ), Append to first table );
Close( d1, nosave );
);
);
d1 = d2<< Summary(
Group( :age ),
Sum( :height ),
Freq( "None" ),
Weight( "None" ),
Link to original data table( 0 )
);
Modélisation statistique avancéeOrganisation du contenuMélange et nettoyage des donnéesRe : Comment ouvrir plusieurs tables, les fusionner en mémoire et comprendre les résultats des sous-totaux?J'ai essayé plusieurs fois comme si la colonne avec le nom de table directement ajouté était plus rapide que "créer une colonne source"
Je ne sais pas si c'est vrai.
Merci!
na=dt<<GET name=""></GET>
Re : Comment ouvrir plusieurs tables, les fusionner en mémoire et comprendre les résultats des sous-totaux?Voici vos problèmes
- Vous souhaiterez probablement ouvrir les tables de données avec l'option "privée" pour économiser de la mémoire et augmenter
dt = open( "$SAMPLE_DATA/Students.jmp", private );
- La documentation indique que vous devez spécifier "Data Table( name ), Data Table( name )".Vous spécifiez une variable comme handle pour référencer les tables de données que vous ouvrez
dt = Open( "$SAMPLE_DATA/Students.jmp" );
si vous regardez quelle est la valeur de dt, sa valeur est Data Table( "Students" ), vous n'avez donc pas besoin de la spécifierdt << Concatenate(
Data Table( dt1 ),
Data Table( dt2 )
il convient de le préciser commedt << Concatenate(
dt1,
dt2,
- Les colonnes Ajouter à la première table et Créer la source ne sont pas des chaînes littérales, ce sont simplement des expressions clés et doivent simplement être spécifiées comme telles.
Compte tenu de tout cela, votre code devrait être
names default to here( 1 );
dt = Open( "$SAMPLE_DATA/Students.jmp" );
dt1 = Open( "$SAMPLE_DATA/Students1.jmp", private );
dt2 = Open( "$SAMPLE_DATA/Students2.jmp", private );
dt << Concatenate(dt1, dt2, Append to first table, create source column);<BR />close( dt1, nosave );<BR />close( dt2, nosave );
Re : Comment ouvrir plusieurs tables, les fusionner en mémoire et comprendre les résultats des sous-totaux?</CODE></PRE><P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-342280" slang="en-US">Re : Comment ouvrir plusieurs tables, les fusionner en mémoire et comprendre les résultats des sous-totaux?</LINGO-SUB><LINGO-BODY id="lingo-body-342280" slang="en-US"><P>Merci Jim!<BR /> J'essaie d'écrire.</P><P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2020-12-16_08-39-58.png" style="width: 624px;"><span class="lia-inline-image-display-wrapper" image-alt="2020-12-16_08-39-58.png" style="width: 624px;"><img src="https://us.v-cdn.net/6038925/uploads/images/28985i79B63E10207BC03B/2020-12-16_08-39-58.png" role="button" title="2020-12-16_08-39-58.png" alt="2020-12-16_08-39-58.png" /></span></SPAN></P></LINGO-BODY><LINGO-SUB id="lingo-sub-342277" slang="en-US">Re : Comment ouvrir plusieurs tables, les fusionner en mémoire et comprendre les résultats des sous-totaux?</LINGO-SUB><LINGO-BODY id="lingo-body-342277" slang="en-US"><OL>
<LI>Concaténer les 60 premiers<BR /><OL>
<LI>Assurez-vous que l'option "Créer une colonne source" est spécifiée</LI>
</OL>
</LI>
<LI>Générer les statistiques</LI>
<LI>Lisez et concaténez le nouveau fichier à la table 1-60</LI>
<LI>À l'aide de la "Colonne source", sélectionnez toutes les lignes du tableau de données 1</LI>
<LI>Générer les statistiques</LI>
<LI>Répétez les étapes 3 à 5 jusqu'à ce que les 100 fichiers soient lus et analysés.</LI>
</OL></LINGO-BODY><LINGO-SUB id="lingo-sub-342276" slang="en-US">Re : Comment ouvrir plusieurs tables, les fusionner en mémoire et comprendre les résultats des sous-totaux?</LINGO-SUB><LINGO-BODY id="lingo-body-342276" slang="en-US"><P>Merci Jim!</P><P> </P><P>S'il existe 100 fichiers de ce type, définissez le nom du fichier sur « 001.JMP-100.JMP ».<BR /> Épisser, trier et résumer 60 fichiers à la fois selon l'ordre des noms de fichiers, et afficher les résultats. Il y a donc 41 résultats.</P><P><BR />La première concaténation consiste à obtenir le premier résultat du fichier 001.Jmp-060.JMP selon la méthode ci-dessus.<BR /> Pour le deuxième traitement du fichier "002.Jmp-061.JMP", comment le joindre et le résumer plus rapidement cette fois-ci ?</P></LINGO-BODY><LINGO-SUB id="lingo-sub-341933" slang="en-US">Re : Comment ouvrir plusieurs tables, les fusionner en mémoire et comprendre les résultats des sous-totaux?</LINGO-SUB><LINGO-BODY id="lingo-body-341933" slang="en-US"><P>Voici une version en mémoire de votre code.Il ne crée aucun objet visuel et n'occupe aucune mémoire pour le composant visuel, et crée 2 éléments de mémoire, 1 liste et 1 matrice avec les résultats.</P>
<PRE><CODE class=" language-jsl">names default to here(1);
dt = open("$SAMPLE_DATA/big class.jmp",private);
dt << set name("zippy");
dt2 = open("$SAMPLE_DATA/big class.jmp",private);
dt3 = dt2<< Concatenate( dt,private );
close(dt,nosave);
close(dt2,nosave);
summarize( dt3, bygroup = by(:age), heightSum = sum(:height));
close(dt3,nosave);
show(bygroup,heightSum);