Cambiar el nombre de cada tercera (n+3) columna(s) con un nombre específico; 100+ columnasHola a todos,
Estoy tratando de nombrar un montón de columnas, más de 100 de ellas. He estado haciendo un montón de cosas de texto a columnas y tengo muchos conjuntos de tres columnas a las que quiero dar los mismos nombres. Vea abajo:

Arriba se muestran las columnas con los nombres que quiero tener, a la izquierda de la línea roja. También muestra las columnas con nombres que quiero reemplazar. Como puede ver, me gustaría cambiar cada tercera columna, comenzando en n = 1 (o cualquier número de columna en el que quiera comenzar), y cada tres columnas después de eso (n + 3), cambie el nombre de la columna a "pX ". Lo mismo ocurre con "num_after_pipe" y "value". Todos ellos hasta cierto punto.
Estoy trabajando con el siguiente script para cambiar el nombre de cada conjunto de tres columnas"
dt_stack:"Data 1"n+3<<Set Name("pX");
dt_stack:"Data 2"n<<Set Name("num_after_pipe");
dt_stack:"Data 3"n<<Set Name("value");
dt_stack:"Data 4"n<<Set Name("pX");
dt_stack:"Data 5"n<<Set Name("num_after_pipe");
dt_stack:"Data 6"n<<Set Name("value");
dt_stack:"Data 7"n<<Set Name("pX");
dt_stack:"Data 8"n<<Set Name("num_after_pipe");
.....
¿Alguna sugerencia?
¡Gracias!
Saludos,
AlphaLion662
Tabla de datossecuencias de comandosRe: Cambiar el nombre de cada tercera (n+3) columna(s) con un nombre específico; 100+ columnasHola @AlphaLion662 ,
Esto es lo que estabas buscando? Tenga en cuenta que no sé cómo desea modificar los nombres de las columnas, así que solo agregué prefijos.Puede ver los prefijos en las variables primero, segundo y tercero.El cambio de nombre de la columna ocurre en el bloque debajo de la nota " Cambio de nombre de columna aquí ".
Names default to here(1);
clear log();
dt = open( "$SAMPLE_DATA/Arrhythmia.jmp" );
// Gets all column names in a list
allcols = dt << Get column names();
// Stores the number of columns
numcols = N Items( allcols );
// Some modifier to column names
first = "Tree";
second = "Car";
third = "Star";
For( i = 1, i <= numcols, i++,
// Temporarly stores the column name for later usage
temp = column( dt, allcols[i] ) << Get Name;
if(
// First col, then every 3rd col thereafter
i == 1 | Modulo( i - 1, 3 ) == 0,
// Col name change here
col_Name1 = column(dt,i) << Get Name;
newname1 = first || "_" || col_Name1;
eval( column(allcols[i] ) ) << Set Name( newname1 ),
// Second col, then every 3rd col thereafter
i == 2 | Modulo( i - 2, 3 ) == 0, //( i - 2 ) % 3
// Col name change here
col_Name2 = column(dt,i) << Get Name;
newname2 = second || "_" || col_Name2;
eval( column(allcols[i] ) ) << Set Name( newname2 ),
// Third col, then every 3rd col thereafter
i == 3 | Modulo( i - 3, 3 ) == 0,
// Col name change here
col_Name3 = column(dt,i) << Get Name;
newname3 = third || "_" || col_Name3;
eval( column(allcols[i] ) ) << Set Name( newname3 ),
);
);
Re: Cambiar el nombre de cada tercera (n+3) columna(s) con un nombre específico; 100+ columnasHola, Carambola, Bob.
Después de jugar con él por un tiempo, esto funcionó para mí. ¡Gracias!
Re: Cambiar el nombre de cada tercera (n+3) columna(s) con un nombre específico; 100+ columnasEn su caso, también puede incrementar el ciclo en 3 segundos y configurar tres columnas al mismo tiempo en un solo ciclo
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Probe.jmp");
dt << Ungroup Columns(); // easier to see what is going on if we remove Responses column group
start_col_idx = 4;
colnames = {"px", "num_after_pipe", "value"};
For(i = start_col_idx, i <= N Cols(dt), i = i + 3, // we can increment in 3s
Try( // lazy try-catch to exit when we cannot set more column names
Column(i) << Set Name(colnames[1]);
Column(i + 1) << Set Name(colnames[2]);
Column(i + 2) << Set Name(colnames[3]);
,
show(exception_msg);
break();
);
);
