jsl을 사용하여 ID별 표준 편차를 계산하는 방법안녕하세요, 저는 이와 비슷한 표를 가지고 있는데, 항목이 두 개 이상인 ID를 선택하고 ID별로 그룹화된 결과의 표준 편차를 계산하고 싶었습니다. 예를 들어, 이 경우 ID 12345를 선택하고 처음 3개 결과의 표준 편차를 계산해야 합니다.
표로 이 작업을 수행할 수 있다는 것을 알고 있지만 실제 테이블은 100만 개 이상의 행으로 매우 큽니다. ID로 표를 작성하고 표준 편차를 계산하는 데 시간이 많이 소요됩니다. 실제 테이블에 있는 대부분의 ID에는 행이 하나만 있습니다. 어쨌든 이와 같은 작업을 수행한 다음 나머지 결과 그룹에 대한 표준 편차를 ID별로 계산할 수 있습니까? 제안해 주셔서 감사합니다!
where(n행(그룹화 열(:ID))>1)을 선택합니다.
| ID | 결과 |
| 12345 | 0.3 |
| 12345 | 0.4 |
| 12345 | 0.2 |
| 23456 | 0.5 |
| 34567 | 0.2 |
고급 통계 모델링자동화 및 스크립팅Re: jsl을 사용하여 ID별 표준편차를 계산하는 방법그룹화 열(ID)을 선택하세요.

그런 다음 계산을 수행하려는 열을 선택하고 표준 편차를 선택합니다(ID별 그룹화 참고).



Re: jsl을 사용하여 ID별 표준편차를 계산하는 방법몇 가지 추가 옵션
요약 테이블 생성

요약 테이블이 있으면 stddev 열을 클릭하고 잠시 동안 마우스를 누르고 있을 수 있습니다. 이렇게 하면 열을 "선택"하여 원래 테이블에 놓을 수 있습니다.

요약 테이블과 함께 업데이트를 사용할 수도 있습니다.

Tabulate를 사용하여 유사한 테이블을 만들 수 있습니다(id는 명목형임).

그런 다음 빨간색 삼각형에서 데이터 테이블을 만듭니다.

그런 다음 업데이트(또는 조인)를 사용하여 결과를 테이블로 다시 가져올 수 있습니다.
또한 많은 스크립팅 옵션이 있습니다. 여기에는 Summarize()를 사용하는 옵션이 있습니다.
Names Default To Here(1);
dt = Current Data Table();
Summarize(ids = by(:ID), stddevs = Std dev(:result));
show(ids, stddevs);
// ids = {"12345", "23456", "34567"}; // note that these are strings even if they were numbers originally
// stddevs = [0.1, ., .];