"조건문"을 사용하여 데이터 행을 선택한 다음 실행하는 방법(예: 단순 Col A - Col C도움이 필요해!
3개 또는 4개의 열에서 데이터 행을 선택하고 싶습니다(CONDITIONAL 문을 기반으로 한 다음 올바른 행을 선택하는 데 조건이 충족되는 경우).
만약에(
:년 == 2020년 , : 자르기 | 옥수수 | 콩 ,
:유형 == 만약 , :"평균(YIELD(BU/A)_OR, 13)"n - :"평균(YIELD(BU/A)_OR, 8)"n,
:ELSE == :EMPTY (가능한 경우 ELSE 문을 사용하지 않는 것이 좋습니다. 수식을 통해 새 열에 추가되는 항목을 정확히 알기 위해 위의 조건문이 충족되기를 바랍니다.)
또는,
만약에(
:년 == 2020년 , : 자르기 | 옥수수 | 콩 ,
:유형 == 잎사귀 , :"평균(YIELD(BU/A)_OR, 4)"n - :"평균(YIELD(BU/A)_OR, 1)"n,
또는,
만약에(
:년 == 2021년 , : 자르기 | 옥수수 | 콩 ,
:유형 == 만약 , :"평균(YIELD(BU/A)_OR, 6)"n - :"평균(YIELD(BU/A)_OR, 2)"n
또는,
만약에(
:년 == 2021년 , : 자르기 | 옥수수 | 콩 ,
:유형 == 잎사귀 , :"평균(YIELD(BU/A)_OR, 3)"n - :"평균(YIELD(BU/A)_OR, 1)"n
)
스크립팅Re: "조건문"을 사용하여 데이터 행을 선택한 다음 실행하는 방법(예: 간단한 Col A - Col C의사 코드를 해석하는 데 문제가 있습니다.
YEAR라는 숫자 열이 있고 값이 2020인지 확인하고 있다고 가정합니다.
다음과 같은 열이 있습니까?
자르기 | 옥수수 | 콩
또는 CROP이라는 열에 Corn 또는 Soybean 값을 갖기를 원하십니까?
TYPE이라는 열이 있는 것으로 보이며 "IF" 값이 있는지 확인하고 있습니까?
값이 "IF"와 같으면 Mean(YIELD(BU/A)_OR, 13)이라는 열과 Mean(YIELD(BU/A)_OR, 8)이라는 열 간의 차이를 찾고 싶습니다.
또는 YIELD 열의 평균을 계산하시겠습니까?
마지막으로 ELSE라는 열을 참조하고 EMPTY라는 열과 같은지 확인합니다.
나는 이것이 당신이 원하는 것이 아니라고 확신합니다.
데이터 테이블이 무엇인지에 대한 샘플을 제공하고 원하는 것을 말로 설명할 수 있습니까?
또한 시간을 내어 Scripting Guide를 읽는 것이 좋습니다.도움말 풀다운 메뉴 아래의 JMP 설명서 라이브러리에서 사용할 수 있습니다.
Re: "조건문"을 사용하여 데이터 행을 선택한 다음 실행하는 방법(예: 단순 Col A - Col CJim님, 답변해 주셔서 감사합니다. 도움을 주셔서 감사합니다. 혼란을 드려 죄송합니다. 제가 원하는 공식 유형을 명확히 하고 단순화하려고 노력하겠습니다.
YEAR라는 열이 있고 값은 2020 또는 2021입니다.
CROP이라는 다른 열이 있고 값은 옥수수 또는 대두입니다.
TYPE이라는 다른 열이 있고 값은 Foliar 또는 IF(즉, 고랑 내)입니다.
처리 1에서 10(TRT1, TRT2,.......,TRT10)의 평균 수율을 나타내는 열이 10개 더 있습니다.
각 치료(다른 제품 용량 비율)와 대조 치료(0 비율)의 부가가치를 계산하는 공식을 원합니다.여기 키커가 있습니다. 처리 수(선량률 0, 1, 4, 8, 16, 32, 64 FL OZ/에이커를 나타냄)는 2년 간 그리고 CROP와 TYPE 간에 다릅니다.예를 들어, 16FL OZ/에이커 제품 투여율은 옥수수와 대두 "IF" 모두에 대해 2020년 TRT5였으며, 즉 고랑 내 시험을 나타내며 2021년 옥수수 및 대두 "엽면" 시험 모두에서 TRT3이었습니다.
그래서 저는 YEAR(2) x CROP(2) x TYPE(2)의 8가지 가능한 조합이 있고 다음을 원합니다. 1 공식 주어진 제품 선량률 대 대조군 치료(0률)에 대한 bu./acre의 변화 값을 채우기 위해....그래서 예를 들어 "16FLOZ_AddedValue"라는 이름의 새 열을 만들고 공식이 수행하기를 원합니다. :
YEAR = 2020, CROP=Corn, TYPE=Foliar인 경우 수식은 "TRT3" 값을 반환해야 합니다. 마이너스 열 "TRT1"; 하지만,
YEAR = 2020, CROP=Corn, TYPE=IF(즉, 고랑 내)인 경우 수식은 "TRT5" 값을 반환해야 합니다. 마이너스 "16FLOZ_AddedValue"라는 동일한 열의 "TRT1" 열; 하지만,
YEAR = 2021, CROP=Corn, TYPE=Foliar인 경우 수식은 "TRT4" 값을 반환해야 합니다. 마이너스 "16FLOZ_AddedValue"라는 동일한 열의 "TRT1"" 열;
등 (죄송합니다. "IF"를 하나의 공식으로 묶는 방법을 모르겠습니다).
ELSE 주석과 관련하여 "IF" 조합이 충족되지 않을 때 수식이 숨겨진 작업 단계를 수행하지 않도록 하려는 내 욕망과 관련이 있습니다.즉, 예를 들어 YEAR=2020, CROP=Corn, TYPE=Foliar인 경우 TRT3-TRT1만 계산하고 ELSE 유형의 작업을 생략합니다. 즉, 나머지 모든 셀 값은 그대로 둡니다. 수식이 TRT5-TRT1 등을 취하도록 지시할 수 있는 다음 콤보 IF 문으로 이동합니다.
Re: "조건문"을 사용하여 데이터 행을 선택한 다음 실행하는 방법(예: 단순 Col A - Col C제 질문에 대한 솔루션을 제공해 주신 SAS 기술 지원의 Sarah Seligman에게 큰 감사를 드립니다.그녀의 이메일에서 잘라내기/붙여넣기가 아래에 있지만 형식이 손실되어 공식에서 JSL 형식을 더 쉽게 볼 수 있는 그녀의 X.jmp 데이터 파일과 그녀의 답변 pdf를 첨부했습니다.다시 한 번 JSL 질문에 처음으로 응답해 주신 Sarah와 Jim에게 감사드립니다.
___
안녕하세요 Jeff, 기다려 주셔서 감사합니다. 나는 당신이 설명한 것을 수행하는 공식이 포함된 데이터 테이블을 첨부했습니다. "ELSE 작업을 생략하는 방식으로 IF 문을 구성할 수 있습니까?" 이에 대한 간단한 대답은 예입니다. 조건부 IF 문의 "Else" 부분을 공백으로 두기만 하면 됩니다. 따라서 하나의 IF 문을 사용하면 수식 편집기에서 다음과 같이 보일 것입니다. JSL에서는 If(:YEAR == "2020" & :CROP == "Corn" & :TYPE == "Foliar", :TRT 03 - :TRT 01 ) 두 개의 IF 문을 사용하면 다음과 같이 보일 것입니다. JSL에서는 If( :YEAR == "2020" & :CROP == "Corn" & :TYPE == "Foliar ", :TRT 03 - :TRT 01, :YEAR == "2020" & :CROP == "옥수수" & :TYPE == "IF", :TRT 05 - :TRT 01 ) 대신 수식 편집기를 사용하는 경우 JSL보다 캐럿 아이콘을 클릭하여 새 IF 조건을 삽입할 수 있습니다. 아래 화면 캡처에서 세 번 클릭하여 If 표현식 필드를 3개 더 추가했습니다. 설명한 목표로 돌아가기: "16FLOZ_AddedValue"라는 새 열을 만들고 수식이 수행되도록 합니다. YEAR = 2020, CROP=Corn, TYPE=Foliar인 경우 수식은 "TRT3"에서 열 "을 뺀 값을 반환해야 합니다. TRT1"; 그러나 YEAR = 2020, CROP=Corn, TYPE=IF(즉, 고랑 내)인 경우 수식은 "16FLOZ_AddedValue"라는 동일한 열에서 "TRT5"에서 "TRT1" 열을 뺀 값을 반환해야 합니다. 그러나 YEAR = 2021, CROP=Corn, TYPE=Foliar인 경우 수식은 "16FLOZ_AddedValue"라는 동일한 열에서 "TRT4"에서 열 "TRT1"을 뺀 값을 반환해야 합니다. 설명. 첨부된 데이터 테이블에서 열 패널의 열 이름 옆에 있는 파란색 더하기 아이콘을 클릭하여 공식 편집기에서 볼 수 있습니다. JSL에서 이 공식은 If( :YEAR == "2020" & :CROP == "Corn" & :TYPE == "Foliar", :TRT 03 - :TRT 01, :YEAR == "2020")로 작성됩니다. & :CROP == "옥수수" & :TYPE == "IF", :TRT 05 - :TRT 01, :YEAR == "2021" & :CROP == "옥수수" & :TYPE == "엽면", : TRT 04 - :TRT 01 ) 당신은 또한 다음과 같이 말했습니다: ELSE 문과 관련하여 "IF" 조합이 충족되지 않을 때 공식이 숨겨진 조치 단계를 수행하지 않도록 하고 싶습니다. 즉, 예를 들어 YEAR=2020, CROP=Corn, TYPE=Foliar인 경우 TRT3-TRT1만 계산하고 ELSE 유형의 작업을 생략합니다. 즉, 나머지 모든 셀 값은 그대로 둡니다. 수식이 TRT5-TRT1 등을 취하도록 지시할 수 있는 다음 콤보 IF 문으로 이동합니다. ELSE 작업을 생략하는 방식으로 IF 문을 구성할 수 있습니까? 내가 만든 수식은 첫 번째 IF 조건에 대한 기준이 충족되면 적절한 값을 설정한 다음 다음 IF 조건으로 이동하는 식입니다. ELSE 조건/값을 지정할 필요가 없습니다. 이 정보가 도움이 되기를 바랍니다. 추가 질문이 있으면 알려주세요. 감사합니다. Sarah Seligman JMP 기술 지원 공유. 묻다. 배우다. 연결하다. - community.jmp.com 이 문제와 관련하여 추가 질문이 있는 경우 계속해서 협력하겠습니다. 영업일 기준 5일 이내에 이 이메일에 회신해 주십시오. 이 답변으로 귀하의 질문에 대한 답변이 완료되었으면 이 이메일을 수신했으며 만족할 정도로 문제를 해결했음을 알려주시기 바랍니다. 첨부 파일 7613517300.jmp(6Kb)