Concaténer la ligne sélectionnée à partir de plusieurs tables de données sous-ensembles en 1 nouvelle table de donnéesHi,<BR /><BR />I have a data set(as example, Big Class) that contains all the data. I subset the data by age and select first row of each <BR />subsetted data table. Then, I subset it again so that I can do concatenation of the selected row data into new table. <BR /><BR />I notice that there is additional data (unwanted data ) concatenated in the new table (highlighted in red rectangular). <BR />I am not sure what is the problem of my script. <BR />I attach my script in below.<BR /><SPAN>I really appreciate if anyone could help me to fix this issue.</SPAN><BR />
// Open Big Class data table
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
//Subset the data table by age
listDT = dt << Subset(
By( :age ),
All rows,
Selected columns only( 0 ),
columns( :name, :sex, :height, :weight )
);
//Select first row of each subset data table
For( i = 1, i <= N Items( listDT ), i++,
listDT[i] << Select Rows( {1} );
listDT[i] << Subset("");
Close(listDT[i],"No Save");
Close(dt,"No Save");
);
// Create Tables list
Tables = {};
For( i = 1, i <= N Table(), i++,
Insert Into( Tables, Data Table( i ) << get name );
);
//Create new table
New Table("FirstRowData");
// Run the concatenations
For( i = 1, i <= N Items( Tables ), i++,
Data Table( "FirstRowData" ) << Concatenate(
Data Table( Tables[i] ),
append to first table(1)
);
Close( Data Table( Tables[i] ), No Save );
);
ScriptRe : Concaténer la ligne sélectionnée à partir de plusieurs tables de données sous-ensembles en 1 nouvelle table de donnéesSalut,
Le problème ici semble être les variables de table qui ont été créées pour chaque sous-ensemble.Les variables de table portant le même nom ("âge") étaient ensuite ajoutées sous forme de colonnes à chaque concaténation.Voir le script ci-dessous et notez la boucle For ajoutée pour supprimer les variables de la table.Cela résout-il le problème pour vous ?
// Open Big Class data table
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
//Subset the data table by age
listDT = dt << Subset(
By( :age ),
All rows,
Selected columns only( 0 ),
columns( :name, :sex, :height, :weight )
);
//Select first row of each subset data table
For( i = 1, i <= N Items( listDT ), i++,
listDT[i] << Select Rows( {1} );
listDT[i] << Subset("");
Close(listDT[i],"No Save");
Close(dt,"No Save");
);
// Create Tables list
Tables = {};
For( i = 1, i <= N Table(), i++,
Insert Into( Tables, Data Table( i ) << get name );
);
//Delete table variables
For( i = 1, i <= N Table(), i++,
Data Table(Tables[i]) << Delete Table Variable("age");
);
//Create new table
New Table("FirstRowData");
// Run the concatenations
For( i = 1, i <= N Items( Tables ), i++,
Data Table( "FirstRowData" ) << Concatenate(
Data Table( Tables[i] ),
append to first table(1)
);
Close( Data Table( Tables[i] ), No Save );
);Re : Concaténer la ligne sélectionnée à partir de plusieurs tables de données sous-ensembles en 1 nouvelle table de donnéesMerci!
ça marche parfaitement