데이터 프레임에서 열 이름이 포함된 다른 열을 기준으로 열 필터링안녕하세요 여러분,
데이터 세트를 첨부했습니다. 데이터 세트에는 데이터 세트에 있는 열의 이름이 포함된 Parameter라는 열이 있습니다. 먼저 Parameter 열에 있는 각 고유 열 이름에 해당하는 열을 필터링한 다음 내가 만든 하위 집합 열에 조인하여 변동성 차트를 만들고 싶습니다. 지금은 Parameter 열에 고유한 매개변수가 2개 있고 이는 매주 달라질 수 있으므로 매개변수화하고 싶습니다. 아래에 내가 만든 코드 중 일부가 있습니다. 도움을 주시면 감사하겠습니다.
감사해요
피오
dt_2 = 데이터 테이블( "jmp_question_T_V0" ) << 요약(
그룹( :매개변수 ),
Freq( "없음" ),
무게( "없음" )
);
lst = column(dt_2,1) << GetAsMatrix();
close(dt_2, 저장 안함);
하위 집합_열 = {:이름("PRA"), :이름("WA"), :이름("CH"), :이름("WA_D"),
:이름("CH_D"),:이름("SL_T"),:이름("TST_DATE"),:이름("IL_M"),:이름("수량"),
:Name("W"),:Name("매개변수"),:Name("h_t_d")};
길이 (첫번째)
아이파람 = 1
while(iparam=length(lst)) {
print(lst[iparam])
dt=dt_1
dt_1 << select where (:Parameter == lst[iparam]) //작동함
dt<
dt<< subset(모든 행, 열(subset_cols))
dt_param<
자동화 및 스크립팅 데이터 탐색 및 시각화
Re: 데이터 프레임에서 열 이름이 포함된 다른 열을 기준으로 열 필터링제공하신 스크립트는 ;가 없고 while 루프에 잘못된 구문을 사용하고 있어 작동하지 않습니다. 문자 열에서 고유한 값을 가져오려면 요약 테이블, 요약 함수 또는 연관 배열을 사용할 수 있습니다. 단일 .csv 파일만 제공하셨기 때문에 무엇을 하려는지 정확히 모르겠습니다.
Names Default To Here(1);
dt = Current Data Table();
params = Associative Array(Column(dt, "Parameter")) << get keys;
매개변수 열을 기준으로 별도의 하위 집합을 생성하려면 열별 하위 집합으로 사용하면 됩니다.

Names Default To Here(1);
dt = Current Data Table();
mycols = {"W", "W_s", "R_rd1", "R_rd1_s"};
dt_subsets = dt << Subset(By(:Parameter), Selected Rows(0), Columns(mycols));
아니면 루핑
Names Default To Here(1);
dt = Current Data Table();
params = Associative Array(Column(dt, "Parameter")) << get keys;
mycols = {"W", "W_s", "R_rd1", "R_rd1_s"};
dts = {};
For Each({param}, params,
cur_rows = dt << get rows where(:Parameter == param);
dt_subset = dt << Subset(Rows(cur_rows), Selected Rows(0), Columns(mycols));
Insert Into(dts, dt_subset);
);
행을 선택할 수도 있지만 일반적으로 불필요합니다.
Re: 데이터 프레임에서 열 이름이 포함된 다른 열을 기준으로 열 필터링안녕하세요 Jthi님,
답변 감사합니다만 제가 원하는 것은 이것입니다. 즉, Parameter에 S_rd2_iqr이 있는 경우 화면 샷에 표시된 대로 S_rd2_iqr 열만 필터링하고 싶습니다. Parameter에 S_rd2가 있는 경우 화면 샷에 표시된 대로 S_rd2 열만 필터링하고 싶습니다. 이러한 매개변수는 매번 달라지므로 매개변수화하고 싶습니다.

Re: 데이터 프레임에서 열 이름이 포함된 다른 열을 기준으로 열 필터링이런 식인가요?
Names Default To Here(1);
dt = Current Data Table();
params = Associative Array(Column(dt, "Parameter")) << get keys;
dts = {};
For Each({param}, params,
cols_to_subset = {"Parameter"};
Insert Into(cols_to_subset, param);
cur_rows = dt << get rows where(:Parameter == param);
dt_subset = dt << Subset(Rows(cur_rows), Selected Rows(0), Columns(cols_to_subset), Output Table("Parameter="||param));
Insert Into(dts, dt_subset);
);

Re: 데이터 프레임에서 열 이름이 포함된 다른 열을 기준으로 열 필터링고맙습니다, 자르모.
방금 jmp 스크립팅을 시작했는데 각 데이터 테이블의 for 루프의 과거로 가변성 차트가 필요해서 이미지를 저장해야 합니다.
dts={};
For Each({param}, params,
//cols_to_subset = {"Parameter"};
cols_to_subset = {:Name("PRODUCT"), :Name("WAFER_LOT"), :Name("CHUNK"), :Name("WAFER_ID"),
:Name("CHUNK_ID"),:Name("SLIDER_LOT"),:Name("TST_DATE"),:Name("WAFER_LOT"),:Name("FAIL_MODES"),:Name("DISPOSITION"),:Name("QTY_HGA"),
:Name("min_ET_date"),:Name("wafer_type"),:Name("wd_wafer_mfr_loc"),:Name("cq_or_child"),:Name("radius"),:Name("calc_sh_rd1"),
:Name("calc_sh_rd2"),:Name("CTQ_WRT_WDTH"),:Name("Parameter"),:Name("Product_waferID_Chunk_ID"),:Name("hga_tester_id")};
Insert Into(cols_to_subset, param);
//Insert Into(param,cols_to_subset);
cur_rows = dt_tester << get rows where(:Parameter == param);
dt_subset = dt_tester << Subset(Rows(cur_rows), Selected Rows(0), Columns(cols_to_subset) ,Output Table("Parameter="||param));
//Insert Into(dts, dt_subset);
//);
//this part not working
dt_subset << Variability Chart(
Y(__params__),
X( :WAFER_LOT, :CHUNK, :hga_tester_id ),
Sigma Multiplier( 6 ),
Analysis Type( "Choose best analysis (EMS REML Bayesian)" ),
Variability Analysis( Std Dev Chart( 0 ) ),
SendToReport(
Dispatch(
{__Variability Chart__},
"Variability Chart",
FrameBox,
{Row Legend(
hga_tester_id,
Color( 1 ),
Color Theme( "JMP Default"(1) ),
Marker( 0 ),
Marker Theme( "" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}
)
)
)
);Re: 데이터 프레임에서 열 이름이 포함된 다른 열을 기준으로 열 필터링고맙습니다, 자르모.
그러나 그래프를 저장하기 위해 for 루프의 일부로 변동성 차트를 그려야 합니다.
params = Associative Array(Column(dt, "Parameter")) << get keys;
dts = {};
For Each({param}, params,
//cols_to_subset = {"Parameter"};
cols_to_subset = {:Name("PRA"), :Name("WA"), :Name("CH"), :Name("WA_D"),
:Name("CH_D"),:Name("SL_T"),:Name("TST_DATE"),:Name("IL_M"),:Name("QTY"),
:Name("W"),:Name("Parameter"),:Name("h_t_d")};
Insert Into(cols_to_subset, param);
cur_rows = dt << get rows where(:Parameter == param);
dt_subset = dt << Subset(Rows(cur_rows), Selected Rows(0), Columns(cols_to_subset), Output Table("Parameter="||param));
Insert Into(dts, dt_subset);
Variability Chart(
Y(__params__ ),
X( :WA, :CH, :h_t_d ),
Sigma Multiplier( 6 ),
Analysis Type( "Choose best analysis (EMS REML Bayesian)" ),
Variability Analysis(__params__, Std Dev Chart( 0 ) ),
SendToReport(
Dispatch(
{},
"Variability Chart",
FrameBox,
{Row Legend(
h_t_d,
Color( 1 ),
Color Theme( "JMP Default"(1) ),
Marker( 0 ),
Marker Theme( "" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}
)
)
)
Pause()
);Re: 데이터 프레임에서 열 이름이 포함된 다른 열을 기준으로 열 필터링변동성 플롯이 당신이 원하는 최종 목표입니까? 아니면 다른 용도로도 하위 집합이 필요합니까? (하위 집합을 만들지 않고도 스크립팅을 통해 원래 표에서 변동성 플롯을 만들 수 있습니다)
변동성 차트의 Y와 X로 어떤 열을 사용해야 합니까?