열 공식, 상대값 계산계산된 값이 왼쪽 열 값에 따라 변경되는 데이터 테이블에 대한 새 열 수식을 스크립팅하려고 했습니다. "Big Class" 예제 파일을 사용한 의미의 예입니다. 20개가 아닌 200개의 행이 있다고 가정해 보겠습니다. 각 이름은 마치 높이와 너비가 10년 동안 1년에 한 번씩 기록되는 것처럼 연속해서 10번 나타납니다. 추가로 데이터가 수집된 연도가 포함된 데이터 테이블에 또 다른 열이 있을 것입니다. . 모든 이름의 연도는 동일합니다(예: 2001, 2002, 2003... 2010). 제가 수식을 작성하고 싶은 새 열은 해당 연도에서 2003년을 뺀 높이가 될 것입니다. 아마도 그해에 그들은 비타민을 복용하기 시작했고 그것이 그들의 키 성장에 어떤 영향을 미쳤는지 보여주고 싶을 것입니다. 그런 다음 새 열은 -.5, 0, .25, .7...과 같은 값으로 채워집니다. 모두 이름별로 2003년에 지정된 높이에 대한 상대 값입니다.
2003년이 20년이 되므로 각 이름의 키가 데이터 테이블의 다른 쪽 끝에 있는 것이 아니라 같은 사람의 키와 비교되도록 하려면 어떤 종류의 if/while/summarize/by/조건부 공식을 사용해야 합니까?
미리 감사드립니다!
Re: 열 공식, 상대값 계산제안하신 대로 몇 가지 조건을 더 추가하여 공식을 작성하고 실행했습니다. 잘 작동했지만 비슷한 수식과 코드 줄이 포함된 다른 열을 추가한 후 스크립트를 실행하면 "응답 없음" 오류가 발생합니다. 디버거를 실행하면서 문제를 "trow = dt << get 행 위치..."로 요약했습니다. 디버거에서는 런타임의 50% 이상이 여기에 소비되고 있다고 말합니다.
제가 이해한 바에 따르면 JMP는 스크립트를 한꺼번에 실행하므로 Wait(0); 또는 dt << 수식을 실행합니다. 숨을 쉬게 할 것입니다. 이를 사용하는 가장 좋은 방법은 무엇입니까? 나는 이것을 다양한 방법으로 사용해 보았습니다. 공식 바로 앞과 뒤에 몇 개가 분산되어 있지만 여전히 응답하지 않음 문제가 발생합니다.
데이터 테이블에는 약 3천 개의 행과 수식이 있는 2개의 열이 있으므로 프로그램이 생각하는 데 시간이 걸리는 것은 이해할 수 있습니다. 더 높은 사양의 두 번째 컴퓨터에서 스크립트를 실행해 보았으나 동일한 응답을 받았습니다. 프로그램이 더 쉽게 분석할 수 있도록 "trow = dt << 행 가져오기..."를 수행하는 다른 방법이 있습니까?
Re: 열 공식, 상대값 계산당신이 하고 있는 일은 공식에 조건부 항목을 추가하는 것뿐입니다.지정한 조건을 포함하려면 수식에 IF 문을 적용해야 합니다.이것에는 어려운 것이 없습니다.제가 보여드린 방법은 여전히 적합합니다. 다른 조건만 추가하면 됩니다.
Re: 열 공식, 상대값 계산물론. 나는 지난 며칠 동안 느리지만 확실하게 발전하면서 실패와 성공을 거듭해왔습니다. 이 딸꾹질은 제가 계속 붙잡고 있던 대본의 일부일 뿐입니다.Re: 열 공식, 상대값 계산더 잘 설명하는 데 도움이 된다면 예를 다시 그려 보겠습니다. Big Class 샘플을 사용하여 모든 여성 F 키를 KATIE의 키와 개별적으로 비교하고 모든 남성 M 키를 JOHN의 키와 비교하는 새 열을 원합니다. 이 새로운 열은 "키 차이"라고 하며, 각 행에는 M/F에 따라 해당 사람의 키에서 KATIE 또는 JOHN의 키를 뺀 값이 포함됩니다. 따라서 LOUISE, JANE 및 JACLYN이 포함된 행 2, 3, 4의 "높이 차이" 값은 각각 2, -4, 5입니다. (음수는 허용됩니다). 그러나 TIM의 경우 키는 KATIE의 59가 아닌 JOHN의 65와 비교됩니다.
한 단계 더 나아가, 나이 = 14인 이름을 제외한 목록의 모든 이름에 대해 이 작업을 수행하려면 어떻게 해야 할까요? 나이가 != 14인 모든 행에는 KATIE 및 JOHN과 비교하여 여전히 각각의 "키 차이"가 있습니다. 14세인 경우 셀을 비워두기를 바랍니다.
이것이 문제를 해결하고 단순히 문제를 해결하는 대신 작업할 수 있는 예를 제공하기를 바랍니다. 더 혼란스럽다면 완전히 무시하세요 
Re: 열 공식, 상대값 계산두 가지 가정 모두 정확합니다. 하지만 묻기보다는 스스로 그러한 아이디어를 시도해 보는 것이 좋습니다. 사람은 질문을 통해서 배우는 것이 아니라 시도함으로써 배웁니다....실패하고 성공함으로써
Re: 열 공식, 상대값 계산Col Min이 있는 세 번째 줄의 경우 해당 테이블은 기술적으로 문자이지만 이 도움말 페이지에 따르면 http://www.jmp.com/support/help/Statistical_Functions_2.shtml min은 모두 숫자이거나 모든 문자열을 가질 수 있으므로 문제가 되어서는 안 됩니다. 맞습니까?
둘째, 데이터를 최소값과 비교하는 것이 아니라 내가 선택한 값을 비교하는 경우 어떻게 해야 합니까? 이 시나리오에서는 :Year == " xy z" 설정으로 충분합니까?
Re: 열 공식, 상대값 계산다음과 같이 시도해 보십시오.
dt = Current Data Table();
tname = :name;
tyear = Col Min( :Year, :name );
trow = (dt << get rows where( tname == :name & tyear == :Year ))[1];
-1 * :weight[trow] + :weight[Row()];