sum 은 list 의 형식을 허용하지 않으므로 이를 수행하는 다른 방법이 궁금하십니까? 감사!
Re: 루프를 사용하여 모든 열을 합산합니다.스크립트가 다음과 같이 dt 및 N을 초기화한다고 추가해야 합니다.
dt = Current Data Table();
N = N Col( dt );
루프를 사용하여 모든 열 합산안녕하세요, 서로 다른 데이터 세트에서 여러 테이블을 생성하기 때문에 지정된 테이블에 어떤 열이 있는지 알 수 없는 상당히 긴 스크립트를 작성하고 있습니다. 요약 테이블은 50개 이상의 열, 경우에 따라 70개 이상으로 생성됩니다. 이 열의 모든 값을 합산해야 하지만 일부 카테고리가 있거나 없는 경우 :Name("Column Name")으로 합계를 지정할 수 없습니다. 이것은 내가 사용하려는 루프입니다.
Current Data Table() << New Column( "Total Die",
formula(
For( j = 1, j <= N, j++,
cols = Column( dt, j ) << getname()
);
Sum( cols );
)
);
sum 은 list 의 형식을 허용하지 않으므로 이를 수행하는 다른 방법이 궁금하십니까? 감사!
스크립팅Re: 루프를 사용하여 모든 열을 합산합니다.내가 올바르게 이해했다면 루프를 구축하는 대신 '테이블 > 요약'을 활용하고 JMP가 작업을 수행하도록 할 수 있습니다.
NamesDefaultToHere(1);
// Get some data
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
// Get all the numeric columns
cols = dt << getColumnNames("Numeric");
// Get all the column means
dt2 = dt << Summary(Mean(cols));
이것이 더 나은지 여부는 JSL이 수행하는 다른 작업에 따라 달라질 수 있지만 일반적으로 JMP 플랫폼을 사용하는 것이 좋습니다.
Re: 루프를 사용하여 모든 열을 합산합니다.지식을 조금 확장하면 이 문제를 처리하는 가장 쉬운 방법은 수식 열을 만드는 것이 아니라 열을 만든 다음 행렬을 사용하여 마법을 수행하는 JSL의 기능을 사용하는 것입니다.
Names Default To Here( 1 );
dt = Current Data Table();
N = N Col( dt );
dt << New Column( "new" );
For Each Row(
dt:new = Sum( dt[Row(), index(1,ncols(dt)-1)] )
);
Re: 루프를 사용하여 모든 열을 합산합니다.계산을 완전히 벡터화합니다.
Names Default To Here( 1 );
dt = Current Data Table();
n = N Col( dt );
vals = (dt << Get As Matrix) * J( n, 1, 1);
dt << New Column( "new", "Numeric", "Continuous",
Values( vals )
);
Re: 루프를 사용하여 모든 열을 합산합니다.이런! 죄송합니다. 실제로 행별로 열을 합산하려는 것 같습니다. 보다, 예를 들어 .
또는 수식을 원하는 경우:
NamesDefaultToHere(1);
// How many columns in the table?
nc = RandomInteger(2, 20);
// Build the table with some random data
dt = NewTable("Sum Columns", << addMultipleColumns("Col ", nc, Numeric));
for(c=1, c<=nc, c++, Column(dt, c) << setFormula(RandomNormal()));
dt << addRows(10);
dt << runFormulas;
// Start here with the current data table
dt2 = CurrentDataTable();
cols2 = dt2 << getColumnNames("Numeric");
// Add the row-wise sum as a new formula column
afc = Expr(dt2 << newColumn("Sum over Columns", Numeric, Continuous, Formula(Sum(colsTBD))));
SubstituteInto(afc, Expr(colsTBD), Eval(cols2));
afc;
(이 게시물은 원래 불완전했습니다).