기간을 기준으로 2개의 다른 발생 사이의 발생 횟수를 계산합니다.🙋:female_sign: 안녕!
"하위 유형" 열 내에서 두 번째 REM 발생의 "시작" 열에 있는 시간이 "REM"이라는 단어의 두 발생 사이에 "Stadium N2"가 나타나는 횟수를 계산해야 합니다. 첫 번째 REM 발생의 "End" 열에 있는 시간입니다.
스크린샷에서 별표 보기: 이 경우 개수는 3입니다.
그렇게 하는 공식은 무엇입니까?
감사합니다 :hugging_face: :접힌_손:
자동화 및 스크립팅맥 OS답: 기간을 기준으로 2개의 다른 발생 사이의 발생 횟수를 계산합니다.더 쉽게 테스트할 수 있도록 예제 데이터를 제공할 수 있나요?
답: 기간을 기준으로 2개의 다른 발생 사이의 발생 횟수를 계산합니다.여기 있어요!
답: 기간을 기준으로 2개의 다른 발생 사이의 발생 횟수를 계산합니다.한 가지 더 질문입니다. 누적 값이 괜찮은가요? 그렇다면 두 REM 사이의 첫 번째 Stadium N2에서는 1이 되고 두 번째는 2가 되는 식으로 진행되나요?
답: 기간을 기준으로 2개의 다른 발생 사이의 발생 횟수를 계산합니다.이것이 유일한 옵션은 아니지만 보유하고 있는 데이터의 양에 따라 테이블에 두 개의 열을 추가하는 경우 이와 같은 작업이 작동할 수 있습니다.
Names Default To Here(1);
Current Data Table() << New Column("R", Numeric, Continuous, Formula(
Col Cumulative Sum(If(:SubType == "REM", 1, .))
));
Current Data Table() << New Column("c_n2", Numeric, Continuous, Formula(
If(!IsMissing(:R),
Col Sum(If(:SubType == "Stadium N2", 1, 0), :R);
,
.
);
));
답: 기간을 기준으로 2개의 다른 발생 사이의 발생 횟수를 계산합니다.제안해 주셔서 감사합니다. 이는 실제로 REM으로 간헐적으로 나타나는 모든 N2를 식별합니다. 
그러나 최대 15분 간격인 2 REM 사이에 있는 항목만 계산해야 합니다(대부분의 REM 종료 시간과 다음 REM 시작 시간은 15분 이상 떨어져 있습니다).
이 시간 필터를 어떻게 통합하시겠습니까?
답: 기간을 기준으로 2개의 다른 발생 사이의 발생 횟수를 계산합니다.이를 위해 데이터를 어떻게 정렬해야 합니까? 예를 들어 다음 끝이 나오기 전에 첫 번째 REM 끝이 있습니까?

아니면 데이터가 이미 올바르게 정렬되어 있습니까(여기서 형식을 날짜 시간으로 변경했습니다)? 날짜 정보가 누락되어 있는데 날짜가 변경되는 시기를 어떻게 구별할 수 있습니까? 아니면 타임스탬프를 기반으로 추측해야 합니까?

편집: 데이터의 원래 순서를 따르며 끝과 다음 시작 확인에만 신경을 씁니다.
Names Default To Here(1);
dt = Open("$DOWNLOADS/example(1).jmp");
m_sub = dt[0, "SubType"];
rem_rows = Loc(m_sub, "REM");
rem_ends = dt[rem_rows, "Time of Day[End]"];
rem_starts = dt[rem_rows, "Time of Day[Start]"];
Remove From(rem_ends, N Items(rem_starts));
Remove From(rem_starts, 1);
rem_durs = (rem_starts - rem_ends);
new_col = dt << New Column("Counts", Numeric, Continuous);
For Each({rem_dur, idx}, rem_durs,
If(rem_dur < In Minutes(15) & rem_dur >= 0,
row_start = rem_rows[idx];
row_end = rem_rows[idx + 1];
ntwos = Loc(m_sub[row_start::row_end], "Stadium N2");
ntwo_count = N Items(ntwos);
dt[row_start::row_end, "Counts"] = ntwo_count;
);
);
답: 기간을 기준으로 2개의 다른 발생 사이의 발생 횟수를 계산합니다.감사합니다! 실제로 값은 이미 Start에서 정렬되었습니다.
작은 추가 질문: 정확성을 수동으로 확인해야 하지만 다른 열:ID, :Validated, :Subtype별로 그룹화한 후에만 이 작업을 수행할 수 있습니다.
그룹화 기준에 어디에 어떻게 적합합니까?
답: 기간을 기준으로 2개의 다른 발생 사이의 발생 횟수를 계산합니다.그룹화 변수를 추가하려면 스크립트를 상당히 많이 변경해야 합니다. 가장 쉬운 옵션은 각 그룹에 대한 하위 집합 생성을 추가하고 이에 대한 계산을 실행한 다음 원래 데이터 테이블에 다시 조인하는 것입니다(일종의 고유 식별자 열을 추가해야 할 수도 있음). 또 다른 매우 쉬운 옵션은 단일 GROUP 열을 만든 다음 이를 사용하여 다른 옵션을 반복하는 것입니다. 하지만 인덱스에 주의해야 합니다.