Excel의 COUNTIF 함수와 동일한 JMP저는 다음과 같은 Excel 유형의 동작을 모방하려고 합니다.
| | A | B |
| 1 | 실패 유형 | 이 유형의 실패 횟수 |
| 2 | 에프1 | =countif($a$2:$a$999,a2) |
| 3 | f2 | =countif($a$2:$a$999,a3) |
| 4 | 에프1 | =countif($a$2:$a$999,a4) |
| 5 | 에프1 | =countif($a$2:$a$999,a5) |
| 6 | f2 | =countif($a$2:$a$999,a6) |
| ... | ... | ... |
... JMP에서. 이게 열 수식으로 가능할까요?
"Col Sum( :failureType == :failureType[ Row() ] )"을 시도했지만 작동하지 않고 그 이유를 이해할 수 없습니다. 때때로 ":ColumnName"은 단일 값을 반환하고 다른 때는 전체 열의 항목을 반환하고 이를 자동으로 반복합니다. Scripting Index에서 어떤 작업을 수행할지 알 수 있는 방법이 있습니까?
기본 데이터 분석 및 모델링Re: Excel의 COUNTIF 함수와 동등한 JMP
실패 유형별 1의 Col Sum이 아닐까요?
Col Sum(1, :FailureType)
여기 6열에는 Col Sum(1, :age)라는 공식이 있습니다.

Re: Excel의 COUNTIF 함수와 동등한 JMP네, 아마 효과가 있을 거예요.
내 Col Sum(...)이 왜 작동하지 않았나요? Row()도 각 단계에서 내부적으로 업데이트되고 있나요?
Re: Excel의 COUNTIF 함수와 동등한 JMPRow()만 사용하여 열을 생성하면 반환되는 내용을 볼 수 있습니다.

당신도 같은 일을 할 수 있습니다
:failureType[Row()]
그리고
:failureType
그리고 마지막으로
:failureType == :failureType[Row()]
결과가 어떻게 될지 확인하세요(실패 유형의 현재 행 값과 실패 유형의 현재 행 값을 구문만 다르게 하여 비교하는데, 구문은 거의 항상 1입니다).
Re: Excel의 COUNTIF 함수와 동등한 JMP다른 옵션은 Col Number()입니다.
Col Number(:FailureType, :FailureType)
Re: Excel의 COUNTIF 함수와 동등한 JMP이 답변은 Excel처럼 작동하는 함수에 대한 질문에 직접 답했습니다. 수식 열을 사용하지 않고 요약을 위해 Table > Summary, Analyze > Tabulate, Graph > Graph Builder를 사용할 수도 있습니다.
Re: Excel의 COUNTIF 함수와 동등한 JMP다음 공식도 효과적인 것 같습니다.
Names Default to Here(1);
n1 = :failureType;
Col Sum( :failureType == n1 )
Col Sum 함수 내부에서는 파이썬에서 압축된 변수에 대한 for 루프를 수행하는 것과 비슷하게 목록을 반복할 것으로 예상하지만, 2번째 줄에서는 현재 행에서 :failureType의 값을 가져오는 것뿐입니다. 이런 종류의 암묵적 동작은 매우 유용/도움이 되지만, 사용자가 작동 방식을 이해해야 합니다.
Re: Excel의 COUNTIF 함수와 동등한 JMP와. 좀 놀랍네요. 이런 식으로 될 줄은 몰랐어요.
어떻게 알았나요?
Open( "$SAMPLE_DATA/Big Class.jmp" );
New Column( "ColSum1",
Formula(
Col Sum( :age == 12 );
)
);
New Column( "ColSum2",
Formula(
twelve = 12;
Col Sum( :age == twelve );
)
);
New Column( "ColSum3",
Formula(
myAGE = :age;
Col Sum( :age == myAGE );
)
);
New Column( "ColSum4",
Formula(
myAGE = :age;
myname= :name;
Col Sum( show(myname,myAge,:name,:age,"-");:age == myAGE );
)
);
Re: Excel의 COUNTIF 함수와 동등한 JMP몇 가지 유사점이 있는 관련 게시물: Countif와 동등한 것?
하지만 @BHarris 의 마법이 없다면 : )
Re: Excel의 COUNTIF 함수와 동등한 JMP작동하는 것처럼 보이지만 저는 사용하지 않을 것입니다(byvar로 :failureType을 사용해야 한다면 괜찮을 것이라고 생각합니다). 저는 그것이 의도하지 않은 동작 중 하나라고 생각합니다(JMP 지원에 따르면 허용되지 않아야 하는 1을 사용하는 것보다 더 심각하지만 JMP가 그것을 결코 깨뜨리지 않기를 바랍니다).
Set Each Value에서 수식 표현식을 사용하고 Col 통계 수식의 첫 번째 인수로 표현식을 사용하여 지원되는 동작을 만듭니다 .
JMP 지원팀에 보고하고 왜 그렇게 작동하는지에 대한 기술적 설명을 제공할 수 있는지 알아볼 수 있습니다. 비슷한 방식으로 다른 비교를 사용해 볼 수도 있습니다.

Re: Excel의 COUNTIF 함수와 동등한 JMP@hogi 보기만큼 마법같지는 않을 겁니다. Col Sum의 첫 번째 인수는 표현식이고, 이 경우 n1은 미리 계산되어 있고(컨텍스트상 현재 행의 값으로 설정되었을 가능성이 높음), == 표현식은 1이나 0을 반환하는 듯합니다. 따라서 단순히 열 값이 n1과 같은 경우에는 1을 여러 개 더하고 그렇지 않으면 0을 더하는 것입니다.
제게 약간 마법 같은 점은 열 수식에서 JMP가 ":columnName"으로 입력하면 열의 행을 반복하고 다른 때는 현재 행의 해당 열에서만 값을 가져온다는 것입니다. 다른 스레드에서 논의한 이후로 이게 제게는 신비로웠습니다.
제 생각에는 이 경우에 가장 적합한 함수는 Col Number() 함수이고, 아마 이것보다 더 깔끔하게 캐시할 겁니다.
솔직히, 저는 Col Number()가 존재한다는 걸 몰랐습니다. 저는 성인 생활의 대부분을 Excel에서 보냈기 때문에 Excel 함수와 JMP 함수 간의 매핑이 어딘가에 있었으면 좋겠습니다.
Re: Excel의 COUNTIF 함수와 동등한 JMPNew Column( "ColSum4",
Formula(
myAGE = :age;
myname= :name;
Col Sum( show(myname,myAge,:name,:age,"-");:age == myAGE );
)
);
꽤 설명적입니다. 누적은 내가 생각했던 것과 조금 다르게 작동합니다.
저는 Col Sum이 인수를 한 번 평가한 다음 groupBy에 따라 결과를 그룹화/수집한다고 추측했습니다.
하지만 실제로는:
수식은 각 행에 대해 평가되며, RWx행에 대해 총 40x가 평가됩니다.
그리고 반복할 때마다 Col Sum은 각 행 RWy에 대해 인수를 40번 평가합니다.
결과를 캐시하려고 시도하고, 결과가 동일하다는 확신이 들면 다른 RWx에 대해 인수를 다시 평가하지 않을 것입니다.
하지만 Show() 또는 :age = myAGE의 경우에는 계속해서 다시 평가해야 합니다.
-> 총 40 x 40번.
예를 들어, 행 RWx = 3(myName = Jane)의 경우 인수를 40번 평가합니다.
40개 RWy 중 8개에 대해 :age == myAge는 1을 반환합니다. 따라서 행 3의 Col Sum은 8입니다.
따라서 행 40의 Col Sum은 3입니다.
Re: Excel의 COUNTIF 함수와 동등한 JMP
@jthi 님 이 쓰셨습니다:
작동하는 것처럼 보이지만 저는 사용하지 않을 것입니다(byvar로 :failureType을 사용해야 한다면 괜찮을 것이라고 생각합니다). 저는 그것이 의도하지 않은 동작 중 하나라고 생각합니다(JMP 지원에 따르면 허용되지 않아야 하는 1을 사용하는 것보다 더 심각하지만 JMP가 그것을 결코 깨뜨리지 않기를 바랍니다).
Set Each Value에서 수식 표현식을 사용하고 Col 통계 수식의 첫 번째 인수로 표현식을 사용하여 지원되는 동작을 만듭니다 .
기능이 문서화되어 있다면 - 갑자기 제거되는 것을 어떻게든 방지할 수 있다면 ... 훨씬 더 확신이 생깁니다.
JMP는 결과를 캐시하는 것이 괜찮은지 알아내야 합니다. 누가 그 논리를 알겠습니까?
여기서 JMP는 캐시된 데이터를 사용하는 것이 괜찮다고 생각합니다.
t0 = hptime();
New Column( "test",
Formula(
wait(0.1);
Col Sum( hp time() )
),
);
current data table() << run formulas();
show((hptime()-t0)/1000000)
Re: Excel의 COUNTIF 함수와 동등한 JMP@B해리스
@B해리스 wrote:
때때로 열 수식에서 JMP는 ":columnName"으로 입력될 때 열의 행을 반복합니다.
예를 들어줄 수 있나요?
Re: Excel의 COUNTIF 함수와 동등한 JMP물론입니다. BigClass.jmp를 열고 다음 수식을 사용하여 열을 추가하세요.
Col Sum ( :키 * :몸무게, :성별)