두 열의 UniqueVals 콤보로 선택 및 제외하는 방법은 무엇입니까?그래서 나는 여기서 당황했습니다. Chart_ID 및 Recipe_ID라는 두 열을 기반으로 통계적으로 유의미한 데이터의 선별된 dt를 출력하려고 합니다. 단일 열로 작동하게 할 수는 있지만 두 개의 열을 알아낼 수는 없습니다.
- 저는 Oneway(y=mean, x=chamber, BY:Chart_ID, Recipe_ID)를 사용하여 원시 데이터를 플롯하고 All-pairs Tukey tTest를 실행하고 있습니다.
- 그런 다음 결합된 pVal 데이터 테이블을 가져옵니다.
- 그런 다음 pVal >0.05인 모든 행을 선택하고 제외합니다.
- 그런 다음 Chart_ID별로 UniqueVals의 요약 목록을 생성합니다(이것은 모두 중요한 pVals가 있는 Chart_ID입니다.)
- 그런 다음 UniqueVals와 일치하는 소스 dt의 모든 행을 선택합니다.
- 그런 다음 선택을 반전하고 제외
- --> 이렇게 하면 Chart_ID에 의해 중요한 tTest인 데이터만 소스 dt에 남게 됩니다.
UniqueVals 요약에 Recipe_ID를 추가하는 방법을 알 수 없습니다.
중요하지 않은 모든 차트/레시피를 제외한 소스 dt로 끝나는 더 좋은 방법이 있습니까?
//dtSPC --> my source data, raw SPC data. Need to exclude rows from Charts, Recipes with high pVals
/*plotting a basic Fit YbyX just to get pValues. Formatting and style done on final plot*/
ow1 = Oneway(
Y( :MEAN ),
X( :CHAMBER ),
By(:CHART_ID, :RECIPE),
//All pairs Tukey HSD test
All Pairs(
1,
Confidence Quantile( 0 ),
Difference Matrix( 0 ),
LSD Threshold Matrix( 0 ),
Connecting Letters Report( 0 ),
Ordered Differences Report( 1 )
),
);
/***********************************/
/***********************************/
// Create the combined data table, using xPath (return a list of the OutlineBoxes from the report that have the title Ordered Differences Report. Then, use the first of those to make the combined data table.)
outlines = (Report( ow1[1] ) << Top Parent) << XPath( "//OutlineBox[text()='Ordered Differences Report']" );
dt1 = outlines[1][Table Box( 1 )] << Make Combined Data Table;
dt1 = current data table();
dt1 << set name( "pValue PairWise by Channel Tukey");
dt1:CHART_ID << Data type( Numeric ) << Set Modeling Type( Nominal );
/***********************************/
/**********************************/
//Screen and show only the CHART_ID's w/ a Tukey pair pVal<0.05
//exclude all high pVal rows, leaving only low pVal Channels. Does not work in reverse.
dt1 << select where(:name("p-Value") > 0.05);
dt1 << exclude;
dt1 << clear select;
//create a list of remaining Unique CHART_ID's
summarize(dt1, uniqueVals=by(:CHART_ID));
//Convert to numeric
For( i = 1, i <= N Items(uniqueVals ), i++,
uniqueVals[i] = Num(uniqueVals[i] )
);
//extra, just to look at the data
//dtUnique = New Table( "uniqueVals less 0.05");
//dtUnique << New Column( "CHART_ID", Values(uniqueVals));
//select on SPC source data just the channels w/ low pVals
//need to choose SPC data table
dtSPC << clear select;
dtSPC << select where( contains( uniqueVals, :CHART_ID));
//invert and exclude, leaving only low pVal CHART_ID's
dtSPC << invert row selection << exclude;
dtSPC << clear select;데이터 혼합 및 정리Re: 두 열의 UniqueVals 콤보로 선택 및 제외하는 방법은 무엇입니까?효과가 있었다! 그런 간단한 WIN. 연결된 값을 문자열로 보냅니다.Re: 두 열의 UniqueVals 콤보로 선택 및 제외하는 방법은 무엇입니까?열에 중복된 값이 있으면 이전 Associative Array() 솔루션이 올바르게 작동하지 않으므로(쉽게 고칠 수 있음) for-loop 버전을 사용하고 있습니다.
이것이 당신이 원하는 것을합니까?
Names Default To Here(1);
dtPopCorn = Open( "$SAMPLE_DATA/Popcorn.jmp" );
/*plotting a basic Fit YbyX just to get pValues. Formatting and style done on final plot*/
ow1 = Oneway(
Y( :yield ),
X( :batch),
By(:trial, :popcorn),
//All pairs Tukey HSD test
All Pairs(
1,
Confidence Quantile( 0 ),
Difference Matrix( 0 ),
LSD Threshold Matrix( 0 ),
Connecting Letters Report( 0 ),
Ordered Differences Report( 1 )
),
);
/***********************************/
/***********************************/
// Create the combined data table, using xPath (return a list of the OutlineBoxes from the report that have the title Ordered Differences Report. Then, use the first of those to make the combined data table.)
outlines = (Report( ow1[1] ) << Top Parent) << XPath( "//OutlineBox[text()='Ordered Differences Report']" );
dt1 = outlines[1][Table Box( 1 )] << Make Combined Data Table;
dt1 << set name( "pValue PairWise by Channel Tukey");
/***********************************/
/**********************************/
pVals = Loc(dt1:"p-Value"n << get as matrix <= 0.05);
comparisonStrings = {};
For(i = 1, i <= N Items(pVals), i++,
Insert Into(comparisonStrings, char(dt1:trial[pVals[i]]) || dt1:popcorn[pVals[i]]);
);
show(comparisonStrings);
dtPopCorn << clear select;
dtPopCorn << select where(contains(comparisonStrings, char(:trial)||:popcorn));p-값이 0.05 미만인 조합만 시험 = 2이고 팝콘 = 미식가입니다.

Re: 두 열의 UniqueVals 콤보로 선택 및 제외하는 방법은 무엇입니까?@jthi
팁을 주셔서 감사합니다. 하지만 스크립트에 대해 약간 혼란스럽습니다. 그것은 단지 몇 번 선택하는 것처럼 보이지만 소스 dt로 돌아가기 위해 아무 것도 하지 않습니다.
결합된 데이터 테이블에서 pVal을 잘 선택할 수 있습니다. 내가 겪고 있는 문제는 결합된 데이터 테이블의 두 열로 요약한 다음 기본 소스 데이터로 돌아가서 요약을 사용하여 선택하는 것입니다.
이 문제에 대해 이야기하는 데 사용할 수 있는 것처럼 보이는 샘플 세트를 찾았습니다.
두 개의 BY 열을 사용하여 소스 dt로 다시 요약하는 방법을 알 수 없습니다.
By(:시험판, :oil amt),
dtPopCorn = Open( "$SAMPLE_DATA/Popcorn.jmp" );
/*plotting a basic Fit YbyX just to get pValues. Formatting and style done on final plot*/
ow1 = Oneway(
Y( :yield ),
X( :popcorn ),
By(:trial, :oil amt),
//All pairs Tukey HSD test
All Pairs(
1,
Confidence Quantile( 0 ),
Difference Matrix( 0 ),
LSD Threshold Matrix( 0 ),
Connecting Letters Report( 0 ),
Ordered Differences Report( 1 )
),
);
/***********************************/
/***********************************/
// Create the combined data table, using xPath (return a list of the OutlineBoxes from the report that have the title Ordered Differences Report. Then, use the first of those to make the combined data table.)
outlines = (Report( ow1[1] ) << Top Parent) << XPath( "//OutlineBox[text()='Ordered Differences Report']" );
dt1 = outlines[1][Table Box( 1 )] << Make Combined Data Table;
dt1 = current data table();
dt1 << set name( "pValue PairWise by Channel Tukey");
dt1:trial << Data type( Numeric ) << Set Modeling Type( Nominal );
/***********************************/
/**********************************/
//Screen and show only the trial's w/ a Tukey pair pVal<0.05
//exclude all high pVal rows, leaving only low pVal Channels. Does not work in reverse.
dt1 << select where(:name("p-Value") > 0.5); //I know...just setting 0.5 so that one row stands out.
dt1 << exclude;
dt1 << clear select;
//create a list of remaining Unique trial's
summarize(dt1, uniqueVals=by(:trial));
//Convert to numeric
For( i = 1, i <= N Items(uniqueVals ), i++,
uniqueVals[i] = Num(uniqueVals[i] )
);
//extra, just to look at the data
//dtUnique = New Table( "uniqueVals less 0.5");
//dtUnique << New Column( "trial", Values(uniqueVals));
//select on SPC source data just the channels w/ low pVals
//need to choose SPC data table
dtPopCorn << clear select;
dtPopCorn << select where( contains( uniqueVals, :trial));
//invert and exclude, leaving only low pVal trial's
dtPopCorn << invert row selection << exclude;
dtPopCorn << clear select;Re: 두 열의 UniqueVals 콤보로 선택 및 제외하는 방법은 무엇입니까?숫자 열을 문자로 변환한 다음 두 열을 연결하여 비교 문자열 목록을 가져올 수 있습니다. 그런 다음 해당 목록을 사용하여 원하는 행을 선택하거나 연관 배열을 사용합니다. 예제 데이터 세트가 없으므로 여기에 일종의 예제가 있습니다.
Names Default To Here(1);
dt = New Table("Untitled 22",
Add Rows(5),
Compress File When Saved(1),
New Column("CHART_ID",
Character,
"Nominal",
Set Values({"123", "1", "12", "0", "135"})
),
New Column("RECIPE",
Character,
"Nominal",
Set Values({"A", "A", "B", "B", "C"})
),
New Column("pval",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([0.1, 0.001, 0.051, 0.002, 0.1])
)
);
pVals = Loc(dt:pval << get as matrix > 0.05); //get rows over 0.05
comparisonStrings = {};
For(i = 1, i <= N Items(pVals), i++,
Insert Into(comparisonStrings, char(dt:CHART_ID[pVals[i]]) || dt:RECIPE[pVals[i]]);
);
wait(1);
dt << Select Where(Contains(comparisonStrings, char(:CHART_ID)||:RECIPE));
wait(1);
dt << clear select;
wait(1);
aa = Associative Array(Eval List(dt:CHART_ID[pVals]), EvalList(dt:RECIPE[pVals]));
dt << Select Where(Contains(aa, :CHART_ID) & aa[:CHART_ID] == :RECIPE);스크립팅 인덱스를 사용하여 무슨 일이 일어나고 있는지 더 잘 이해하십시오(필요한 경우 디버깅을 위해).
Re: 두 열의 UniqueVals 콤보로 선택 및 제외하는 방법은 무엇입니까?정보를 주셔서 감사합니다. ASA 성명서를 읽었는데 대부분 이해가 됩니다. 그러나 내 상황(그리고 다른 많은 ppl이 있다고 가정)은 수천 개의 차트를 처리하고 있으며 가장 중요한 것을 보기 위해 목록을 빠르게 선별하고 다듬을 방법이 필요합니다. 다음은 예시로 스크린샷입니다. 나는 5000개의 차트를 살펴봐야 하고 시간을 할애하는 데 가장 중요한 차트를 식별할 수 있는 좋은 방법이 필요합니다. 어디선가 선을 그어야 합니다.
FDR도 찾아보았지만 X 특성 하나만 사용하고 있기 때문에 이것이 적용되지 않는 것 같습니다. X 하나만으로 FDR이 발생하지 않습니다.

선택 및 요약에 관하여:
그게 문제야. 요약을 가져오고 소스 데이터를 선택할 수 있도록 번역하는 방법을 알 수 없습니다.
이전에는 Summarize가 문자를 출력하기 때문에 단일 열(Chart_ID)을 선택한 다음 다시 숫자로 변환했습니다. 거기에서 UniqueVals(Chart_ID) 목록으로 소스 dt Chart_ID Col을 선택할 수 있었습니다.
숫자와 문자로 구성된 두 개의 서로 다른 열을 사용하여 이를 수행하는 방법은 무엇입니까?
Re: 두 열의 UniqueVals 콤보로 선택 및 제외하는 방법은 무엇입니까?안녕하세요, Aliegner1입니다!
이해할 수 없지만 중요한 p-값을 선택하고 새 테이블을 부분 집합화한 다음 Chart_ID 및 Recipe_ID로 요약해 볼 수 있습니까?
다시 말하지만 이해가 안 될 수도 있지만 당신이 하는 일은 " 해킹 ".최소한 p-값에 대한 ASA 진술을 읽은 다음 JMP 도움말의 통계 색인에서 거짓 발견률을 조회하는 것이 좋습니다.
행운을 빕니다!