간단한 찾기 및 바꾸기를 완료하려고 합니다. 더 큰 스크립트를 작성 중이며 일부 텍스트를 공백으로 바꾸고 싶습니다. 루핑과 Munger 기능을 시도해 보았지만 온라인에서 찾은 모든 예제는 필요한 것보다 더 복잡한 것 같습니다. 데이터 세트를 첨부했습니다. 기본적으로 전체 테이블에서 "< LOD"를 검색하고 공백으로 바꾸고 싶습니다. 또한 "---"에 대해서도 동일한 작업을 수행하고 싶습니다. 마지막으로 텍스트를 제거한 후 스크립트를 사용하여 열을 숫자/연속으로 변경하고 싶습니다.
도와 주셔서 감사합니다!
오늘 수업의 주제는 "Less is More"인 것 같아요. 감사합니다. 그것은 (다시) 완벽하게 작동합니다.
그룹별을 사용하도록 지정하는 경우 그룹별 세부 사항을 제거하고 JMP가 무엇을 사용할지 파악하도록 할 수 있는 경우가 많습니다.아래 스크립트는 복잡하지 않고 훌륭하게 작동합니다.
Bubble Plot(
X( :RT1 ),
Y( :RT2 ),
Sizes( :Area ),
Coloring( :Group ),
Title Position( 0, 0 ),
By( :Sample ID )
);
감사합니다. 해당 스크립트는 완벽하게 작동했습니다.
참고로 (이 문제에 대해 새 토론 스레드를 시작해야 한다면 알려주십시오.) 이전에 첨부한 데이터를 사용하여 스크립트를 사용하여 버블 플롯을 만들려고 합니다. 모든 작업을 대화형으로 수행한 다음 스크립트를 복사할 수 있지만 이는 첫 번째 열의 샘플 ID 이름에만 해당됩니다. 이 스크립트를 다양한 데이터 테이블과 함께 사용할 것이며 데이터 레이아웃은 항상 동일하지만 파일에 포함된 샘플 수와 샘플 ID는 변경됩니다. "CM172-001"이라고 말하는 대신 모든 샘플 ID에 사용되도록 아래 스크립트를 조정하는 쉬운 방법이 있습니까?
Bubble Plot(
SendToByGroup( {:Sample ID == "CM172-001"} ),
X( :RT1 ),
Y( :RT2 ),
Sizes( :Area ),
Coloring( :Group ),
Title Position( 0, 0 ),
By( :Sample ID ),
SendToByGroup(
{:Sample ID == "CM172-001"},
SendToReport(
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-001"},
"1",
ScaleBox,
{Min( 11 ), Max( 22 ), Inc( 2 ), Minor Ticks( 1 )}
),
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-001"},
"2",
ScaleBox,
{Min( 2.84 ), Max( 2.97 ), Inc( 0.02 ), Minor Ticks( 1 )}
)
)
),
SendToByGroup(
{:Sample ID == "CM172-002"},
SendToReport(
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-002"},
"1",
ScaleBox,
{Min( 10 ), Max( 35 ), Inc( 5 ), Minor Ticks( 1 )}
),
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-002"},
"2",
ScaleBox,
{Min( 2.8 ), Max( 3.7 ), Inc( 0.1 ), Minor Ticks( 0 )}
)
)
),
SendToByGroup(
{:Sample ID == "CM172-003"},
SendToReport(
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-003"},
"1",
ScaleBox,
{Min( 11 ), Max( 22 ), Inc( 2 ), Minor Ticks( 1 )}
),
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-003"},
"2",
ScaleBox,
{Min( 2.83 ), Max( 2.96 ), Inc( 0.02 ), Minor Ticks( 1 )}
)
)
),
SendToByGroup(
{:Sample ID == "CM172-004"},
SendToReport(
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-004"},
"1",
ScaleBox,
{Min( 10 ), Max( 30 ), Inc( 5 ), Minor Ticks( 1 )}
),
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-004"},
"2",
ScaleBox,
{Min( 2.6 ), Max( 3.6 ), Inc( 0.2 ), Minor Ticks( 1 )}
)
)
),
SendToByGroup(
{:Sample ID == "CM172-005"},
SendToReport(
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-005"},
"1",
ScaleBox,
{Min( 10 ), Max( 30 ), Inc( 5 ), Minor Ticks( 1 )}
),
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-005"},
"2",
ScaleBox,
{Min( 2.7 ), Max( 3.7 ), Inc( 0.2 ), Minor Ticks( 1 )}
)
)
)
);다음은 변경하려는 값을 찾아서 변경한 다음 열을 숫자 및 연속형으로 설정하는 간단한 코드입니다.
Names Default To Here( 1 );
dt = Current Data Table();
colList = dt << get column names( character, string );
For( i = 1, i <= N Items( colList ), i++,
selRows = dt << get rows where(
Column( dt, colList[i] )[Row()] == "< LOD" | Column( dt, colList[i] )[Row()] == "---"
);
If( N Rows( selRows ) > 0,
Column( dt, colList[i] )[selRows] = "";
Column( dt, colList[i] ) << data type( "numeric" ) << modeling type( "continuous" );
);
);
그렇다면 한 단계가 필요합니다! 도와 주셔서 감사합니다. 훨씬 쉽게.
데이터 유형을 문자에서 숫자로 변경하면 "
Names Default to Here( 1 );
dt = New Table( "test",
New Column( "data",
Character, Nominal,
Values( { "3.1", "4.5", "<LOD></LOD>Re: 단순 찾기 및 바꾸기주의 말씀에 감사드립니다. 그러나 저는 단지 지문 그래프를 작성하기 위해 데이터를 사용하고 있으며 화합물이 검출되지 않았다는 단순한 사실이 우리의 관심을 끌고 있습니다. 모든 통계 분석의 경우 제공된 검출 한계를 기준으로 ND 값을 귀속시킵니다.
스크립팅 질문과 별도로 검열 . 정확한 데이터뿐만 아니라 검열된 데이터도 처리하는 추정기를 사용해야 합니다.