如何從 1 到 n 中選擇列我正在嘗試按列號選擇轉置列,
考慮到列太多,有沒有辦法從 column(1) 選擇 column(n)
我目前正在使用以下方法,當 n>9999 時該方法不起作用。
謝謝
轉置(
列(
列(3),
列(4),
......
欄目(9999))
腳本回复:如何從 1 到 n 中選擇列首先創建帶有列名的字符串列表(有很多方法可以做到這一點,在示例中我使用了 transform Each 和 index),然後在 Columns() 中使用 Eval。
像這樣的東西:
Names Default To Here(1);
//setup example data
dt = Open("$SAMPLE_DATA/Blood Pressure.jmp");
Column(3) << Set Name("1");
Column(4) << Set Name("2");
Column(5) << Set Name("3");
Column(6) << Set Name("4");
Column(7) << Set Name("5");
col_list = Transform Each({num}, AsList(Index(1, 5)`), Char(num)); //JMP16
dt << Transpose(
columns(Eval(col_list)),
By(:Dose),
Label(:Subject)
);回复:如何選擇從 1 到 n 的列這是我對這個問題的看法,您可以在其中指定要轉換的列號
Names Default To Here( 1 );
//setup example data
dt = Open( "$SAMPLE_DATA/Blood Pressure.jmp" );
// add a complex col name to insure script can handle them
dt:bp 8m << set name( "BP+8M" );
// make table large
For( i = 1, i <= 11000, i++,
dt << New Column( Column( dt, Mod( i, 9 ) + 3 ) << get name,
set each value( As Column( dt, Mod( i, 9 ) + 3 ) )
)
);
// get rid of first 2 non useful columns
dt << delete columns( 1, 2 );
// get list of col names
colList = dt << get column names();
//set column numbers to be used
startColNum = 5;
endColNum = 10100;
// transform columns
transList = {};
For( i = startColNum , i <= endColNum, i++,
Insert Into( transList, colList[i] )
);
dt << Transpose( columns( transList ) );