Empiler une colonne de groupe dans une nouvelle table de donnéesBonjour,
J'ai le code suivant. Dans les dernières lignes, j'essaie d'empiler des colonnes. Le problème est que, lorsque j'exécute le script, je ne vois qu'une colonne empilée, mais il en faut plus d'une (selon la longueur des listes dans le code).
);<BR /><BR />dt = open("C:\JMPCommunity\DataTableExample.jmp");
s_list = {sen1, sen2, sen3, sen4, sen5};
test_list ={test1, test2, test3};
tokens_list={Col1, Col2, Col3};
g_list={g1,g2,g3};
For(j = 1, j<=Length(test_list), j++,
For( i = 1, i<= Length(s_list), i++,
dt << New Column ( test_list[j] ||"_" || s_list[i],
Numeric,
Continuous,
Formula(
Num(Word( i, As Column(Column(tokens_list[j] )), "|" ))
)
)
);
g_list[j] = dt << Group Columns(:( || test_list[j]|| "_" || s_list[1]), Length(s_list));<BR /> dt << Stack(columns(dt << Get Column Group( g_list[j] );),<BR /> Source Label Column( "Label_" || test_list[j] ),<BR /> Stacked Data Column( "Data_" || test_list[j])<BR /> );<BR />
Mes questions sont:
1. Comment le problème peut-il être résolu?
2 Comment la nouvelle table de données ouverte peut-elle être un nouveau dt (qui n'est pas mis à jour par l'original)?
Un exemple est joint
Re: Empiler une colonne de groupe dans une nouvelle table de donnéesBonjour,
Je pense qu'il y a un problème. La dernière table ouverte génère plus de lignes que nécessaire.
Par exemple: la 1ère pile DT correspond à ce dont j'ai besoin, composée de 10 lignes de données. Le dernier DT comprend 250 cellules de données !!
C'est X25. Maintenant, en réalité, si j’ai un tableau de 10 ^ 6 lignes ou plus, il sera extrêmement multiplié et le traitement des données informatiques se terminera peut-être ....
Selon l'exemple que j'ai joint, je dois obtenir 3 colonnes empilées de Label & Data ne contenant que 10 lignes de cellules.
Je pense à MultipleSeriesStack mais je ne sais pas comment l'insérer dans mon code
Re: Empiler une colonne de groupe dans une nouvelle table de donnéesAprès correction de l’ajout de ': Column (' dans le groupe Columns (message, le script semble fonctionner, mais il crée trois tables différentes, chacune avec un seul ensemble de colonnes groupées. Si vous souhaitez continuer à ajouter des colonnes à la table nouvellement créée (ce que je pense que vous souhaitez), vous devez référencer la table nouvellement créée. Voici un moyen de le faire:
Names default to here( 1 );
s_list = {sen1, sen2, sen3, sen4, sen5};
test_list ={test1, test2, test3};
tokens_list={Col1, Col2, Col3};
g_list={g1,g2,g3};
dt = list();
dt[1] = open("C:\Users\a384681\Downloads\DataTableExample.jmp");
For(j = 1, j<=Length(test_list), j++,
For( i = 1, i<= Length(s_list), i++,
dt[j] << New Column ( test_list[j] ||"_" || s_list[i],
Numeric,
Continuous,
Formula(
Num(Word( i, As Column(Column(tokens_list[j] )), "|" ))
)
)
);
g_list[j] = dt[j] << Group Columns(:Column(test_list[j] || "_" || s_list[1]), Length(s_list));
dt[j+1] = dt[j] << Stack(
columns(dt[j] << Get Column Group( g_list[j] );),
Source Label Column( "Label_" || test_list[j] ),
Stacked Data Column( "Data_" || test_list[j])
);
);