여러 열을 선택하고 스크립트에서 히스토그램 만들기안녕,
테이블에서 두 개의 열을 선택하고 히스토그램을 작성하는 스크립트를 작성했습니다. 나는 임의의 수의 열을 선택하고 선택한 열에 대해 히스토그램을 작성하는 것을 좋아합니다. 내가 그것을 달성하도록 도와줄 수 있나요? 아래에 내 스크립트가 나열되어 있습니다. 감사해요
dt = 열려 있는 ( "A.csv" );
xvar = . ;
이바르 = . ;
승리 = 새창 ( "두 개의 변수를 선택하세요" ,
<< 모달 ,
<< 검증 시 (
// 사용자가 확인을 클릭하기 전에 두 개의 변수를 선택하도록 요구합니다.
보여주다 (xvar, yvar);
만약에 ( 누락 ( xvar ) | 누락 (이바르),
0 , // xvar 또는 yvar가 누락된 경우 확인을 클릭하면 아무 작업도 수행되지 않습니다.
1
);
),
텍스트 상자 ( " 두 개의 숫자 열을 선택하세요. " ),
H 목록 상자 (
텍스트 상자 ( "먼저 선택하세요" ),
x = 열 목록 상자 (
DT, // 데이터 테이블 참조
모두, // 데이터 테이블의 모든 열을 표시합니다.
xvar = (x << 선택받기 )[ 1 ];
// 창이 닫히기 전에 선택한 열의 이름을 가져옵니다.
보여주다 ( xvar );
),
텍스트 상자 ( "두 번째를 선택하세요" ),
와이 = 열 목록 상자 (
DT,
모두,
yvar = (y << 선택받기 )[ 1 ];
보여주다 (yvar);
)
)
);
xcol = 열 (dt, xvar); // 열을 가져옵니다
ycol = 열 (dt,yvar);
이름1 = ":" || xvar;
이름2 = ":" || 이바르;
이름 = 이름1 || "," || 이름2;
보여주다 ( 이름 );
평가 (
구문 분석 (
"obj1 = 분포(
스택(1),
연속 분포( 열(" || 이름1 || ") ,
),
연속 분포( 열(" || 이름2 ||
"),
)
);"
)
);
Re: 여러 열을 선택하고 스크립트에서 히스토그램을 수행합니다.감사해요. 매우 유용한 스크립트입니다.Re: 여러 열을 선택하고 스크립트에서 히스토그램을 수행합니다.안녕,
다시 한 번 감사드립니다. 히스토그램 결과를 HTML로 저장하고 싶었는데 예전에 해본 적이 있습니다. 다음은 약간 수정된 스크립트입니다. 오류가 발생합니다.
이름이 확인되지 않음: obj가 'obj'에 액세스하거나 평가 중임). 당신의 도움에 감사드립니다.
dt = 열려 있는 ( "A.csv" );
승리 = 새창 ( "데이터 선택" ,
H 목록 상자 (
패널박스 ( "사용 가능한 열" , dtCols = 열 목록 상자 ( dt, 모두, 너비( 80 ) ), ),
패널박스 ( "선택한 열" ,
H 목록 상자 (
V 목록 상자 (
추가버튼 = 버튼 상자 ( "추가하다" , 콜리스트 << 추가 ( dtCols << 선택받기 ) ),
제거버튼 = 버튼 상자 ( "제거하다" , 콜리스트 << 선택된 것을 지우다 () )
),
콜리스트 = 열 목록 상자 ( 숫자, 너비( 80 ), 최소항목( 1 ), N 라인( 4 ) )
)
),
확인버튼 = 버튼 상자 ( "좋아요" ,
PlotCols = colList << 아이템 받기 ;
str = "" ;
을 위한 ( 나는 = 1 , 나는 <= N개 품목 ( PlotCols ), i++,
str = str || "지속적 분포(열(:이름(\!"" || 플롯콜[i] || "\!"))),
"
);
평가 ( 구문 분석 ( "obj = dt << 분포(스택(1)," || str || ");" ) );
승리 << 창 닫기 ;
)
)
);
객체 << 보고서 ;
객체 << 대화형 HTML 저장 ( "ㅏ" );
Re: 여러 열을 선택하고 스크립트에서 히스토그램을 수행합니다.솔루션을 제공해 주셔서 정말 감사드립니다. 나는 그것을 시도했고 작동합니다.
Re: 여러 열을 선택하고 스크립트에서 히스토그램을 수행합니다.colListBoxes를 사용하는 방법은 다음과 같습니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
win = New Window("Data Select",
H List Box(
Panel Box("Available Columns",
dtCols = Col List Box(dt, all, width(80)),
),
Panel Box("Selected Columns",
H List Box(
V list Box(
addButton = Button Box("Add", colList << Append(dtCols << Get Selected) ),
removeButton = Button Box("Remove", colList << Remove Selected() )
),
colList = Col List Box(numeric, width(80), MinItems(1), N Lines(4))
)
),
okButton = Button Box("OK",
PlotCols = colList << Get Items;
str = "";
for(i=1,i<=N Items(PlotCols),i++,
str = str||"Continuous Distribution(Column(:Name(\!""||plotcols[i]||"\!"))),
"
);
eval(parse("dt << Distribution(stack(1),"||str||");"));
win << Close Window;
)
)
);