초기 열 목록에서 빼기의 모든 순열을 포함하는 열을 반복적으로 생성합니다.저는 열 목록이 있고 나열된 열 간의 차이의 모든 순열로 새로운 열 시리즈를 만들어야 합니다. 목록의 열 수는 다를 수 있으며 아래의 비반복적 예는 3개의 열(12~14)을 다룹니다.
Current Data Table() << New Column(Head Name( As Namespace( Column( 12 ) ) )||" - "||Head Name( As Namespace( Column( 13 ) ) )||" HSD Threshold Matrix", Numeric, "Continuous", Format("Best", 10), Formula(Col Maximum(If(Contains(:Level, Head Name(As Namespace(Column(13))), 1), As Column(12)), :Group, :Size)));
Current Data Table() << New Column(Head Name( As Namespace( Column( 12 ) ) )||" - "||Head Name( As Namespace( Column( 14 ) ) )||" HSD Threshold Matrix", Numeric, "Continuous", Format("Best", 10), Formula(Col Maximum(If(Contains(:Level, Head Name(As Namespace(Column(14))), 1), As Column(12)), :Group, :Size)));
Current Data Table() << New Column(Head Name( As Namespace( Column( 13 ) ) )||" - "||Head Name( As Namespace( Column( 14 ) ) )||" HSD Threshold Matrix", Numeric, "Continuous", Format("Best", 10), Formula(Col Maximum(If(Contains(:Level, Head Name(As Namespace(Column(14))), 1), As Column(13)), :Group, :Size)));
자동화 및 스크립팅Re: 초기 열 목록에서 빼기의 모든 순열을 포함하는 열을 반복적으로 생성예를 들어 NChooseK Matrix()를 사용하여 조합(또는 DoE)을 생성할 수 있습니다.
Names Default To Here(1);
mylist = {12, 13, 14};
possible_group_idx = NChooseK Matrix(3,2);
my_groups = Transform Each({idx}, possible_group_idx,
mylist[idx]
);
[12 13, 12 14, 13 14]
Re: 초기 열 목록에서 빼기의 모든 순열을 포함하는 열을 반복적으로 생성자르모
고맙습니다. 효과가 있을 것 같습니다. 세부 사항을 공부할 시간은 없었지만 어떻게 사용할 수 있는지에 대한 예가 있는지 궁금합니다.
Re: 초기 열 목록에서 빼기의 모든 순열을 포함하는 열을 반복적으로 생성행렬을 반복하거나 목록의 목록으로 바꾸고 그러면서 열을 만듭니다.
Re: 초기 열 목록에서 빼기의 모든 순열을 포함하는 열을 반복적으로 생성이게 당신이 말하고자 하는 것인지 잘 모르겠지만 여기서 작동하는 것을 찾았습니다. 이것에 대해 더 좋은 점은 열 번호에 의존하지 않는다는 것입니다.
Names Default to Here(1);
dt = Current Data Table();
//Select X Variable ____________________________________________________________________________________________________________________________________________
cdb = Column Dialog("Add continuous variables you want to plot as X" ,
colxx = ColList( "X", Min Col( 1 ) ),
);
show(cdb);
Eval List(cdb[1::N Items(cdb)-1]);
Summarize(dt, uniqNames = by(colxx[1]));
Show(uniqNames);
Num = NItems(uniqNames);
For( k = 1, k <= N Items( uniqNames ), k++,
// Loop through all columns finding non NA values
For( i = 2, i <= N Items( uniqNames ), i++,
if (i > k, Current Data Table() << New Column(Char(uniqNames[k])||" - "||Char(uniqNames[i])||" Matrix", Numeric, "Continuous", Format("Best", 10), Formula(Col Maximum(If(Contains(:Level, Char(uniqNames[i]), 1), As Column(uniqNames[k])), :Group, :Size)));
)
)
)
;
해결됨: Loop를 사용하여 열 값 가져오기 - JMP 사용자 커뮤니티
Re: 초기 열 목록에서 빼기의 모든 순열을 포함하는 열을 반복적으로 생성Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Cities.jmp");
mycols = {"OZONE", "CO", "SO2", "NO", "PM10"};
possible_group_idx = NChooseK Matrix(N Items(mycols), 2);
my_groups = Transform Each({idx}, As List(possible_group_idx), Output("List"),
mycols[idx]
);
For Each({cols}, my_groups,
Eval(Substitute(
Expr(dt << New Column(cols[1] ||"_"||cols[2], Numeric, Continuous,
Formula(_col1_ + _col2_)
)),
Expr(_col1_), Name Expr(AsColumn(dt, cols[1])),
Expr(_col2_), Name Expr(AsColumn(dt, cols[2]))
));
);
Write();