테이블 처리 JMP14를 위한 스크립트안녕하세요. 원래 표를 가져와서 새로운 표를 만드는 스크립트를 작성하는 데 도움을 주시겠습니까? 원래 표에는 각 샘플 온도 측정당 두 줄이 있습니다. 출력 표에서는 각 샘플당 한 행만 사용하고 두 측정 사이의 일수와 온도 델타를 계산합니다.
자동화 및 스크립팅윈도우Re: 테이블 처리 JMP14 스크립트이미지에서 만들지 않아도 되도록 예제 데이터를 JMP 테이블로 제공해 주시겠습니까? (형식은 스크립트에 큰 영향을 미칠 수 있음)
Re: 테이블 처리 JMP14 스크립트각 샘플(온도 및 날짜)에 대한 최대값-최소값을 계산하는 두 개의 수식 열을 추가할 수 있습니다.

또는 아래 스크립트를 실행하여 수식 열이 포함된 예제 테이블을 가져오세요.
New Table( "Example",
Add Rows( 8 ),
New Column( "Sample",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 1, 2, 2, 3, 3, 99, 99] )
),
New Column( "Temperature",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [199, 210, 201, 217, 200, 215, 199, 220] )
),
New Column( "Temp Diff",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
Col Maximum( :Temperature, :Sample )
-Col Minimum( :Temperature, :Sample )
)
),
New Column( "Date (ISO 9601 format)",
Numeric,
"Continuous",
Format( "yyyy-mm-dd", 10 ),
Input Format( "yyyy-mm-dd" ),
Set Values(
[3795552000, 3798576000, 3795552000, 3798748800, 3795552000, 3798662400,
3795552000, 3798921600]
)
),
New Column( "Date Diff",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
Date Difference(
Col Minimum( :"Date (ISO 9601 format)"n, :Sample ),
Col Maximum( :"Date (ISO 9601 format)"n, :Sample ),
"Day"
)
)
)
)
그러면 간단한 요약을 통해 원하는 표를 얻을 수 있습니다.

Re: 테이블 처리 JMP14 스크립트안녕하세요, Jarmo. 지원해주셔서 감사합니다. 첨부된 파일을 확인하세요.
Re: 테이블 처리 JMP14 스크립트안녕하세요 폴. 아이디어 감사합니다. 온도 델타가 때때로 음수이고 저에게 중요한 경우 이 접근 방식이 효과가 있을까요?
Re: 테이블 처리 JMP14 스크립트알겠습니다. 확인해보니 작동하지 않습니다. 다른 공식을 사용하여 나중 날짜와 이전 날짜의 온도 측정값을 선택할 수 있나요?
Re: 테이블 처리 JMP14 스크립트다음 공식을 사용할 수 있습니다
:Temperature - (Col Moving Average(:Temperature, 1, 1, 0, :Sample) * 2 - :Temperature)
그리고
(:Date - (Col Moving Average(:Date, 1, 1, 0, :Sample) * 2 - :Date)) / In Days(1)
델타를 계산합니다.

그런 다음 0 행 없이 새 표를 만들거나(해당 표에 수식을 포함하지 마세요) 수식을 제거하고 해당 0 행을 삭제하세요.

이 스크립트는 JMP14에서 작동해야 한다고 생각합니다(저는 해당 스크립트에 액세스할 수 없으므로 테스트할 수 없습니다)
Names Default To Here(1);
dt = Open("$DOWNLOADS/source table.jmp");
dt << New Column("Time Delta", Numeric, "Continuous", Formula(
:Temperature - (Col Moving Average(:Temperature, 1, 1, 0, :Sample) * 2
- :Temperature)
));
dt << New Column("Temperature Delta", Numeric, "Continuous", Formula(
(:Date - (Col Moving Average(:Date, 1, 1, 0, :Sample) * 2 - :Date)) /
In Days(1)
));
dt << Select Where(:Temperature Delta == 0) << Invert Row Selection;
dt_subset = dt << Subset(
Copy formula(0),
Selected Rows(1),
Columns({"Sample", "Time Delta", "Temperature Delta"}),
Output Table("Deltas")
);
dt << Clear Select;Re: 테이블 처리 JMP14 스크립트Jarmo님, 감사합니다. 한번 시도해 보겠습니다.
Re: 테이블 처리 JMP14 스크립트Jarmo, 당신의 해결책에 정말 감사합니다. 효과가 있네요.
하지만 두 가지 질문이 더 있습니다.
1. 이동 평균 계산 공식이 무엇을 하는지 설명해 주시겠습니까? 저는 그저 귀하의 접근 방식의 논리를 이해하고 싶을 뿐입니다...
2. 방금 첫 번째 줄이 나중 날짜로 가면 음수 시간 델타가 나온다는 것을 알았습니다... 시간 델타는 항상 양수여야 합니다. 스크립트가 제대로 작동하도록 맨 처음에 소스 테이블을 정렬하면 작동할까요?
Re: 테이블 처리 JMP14 스크립트정렬이 작동해야 하지만, 그럴 경우 다른 공식도 고려할 수 있습니다(순서가 항상 나중 - 이전인 경우). 저는 Col Moving Average를 사용하므로 그룹의 이전 행에서 값에 액세스할 수 있습니다.