열에서 연속적인 제로의 총합안녕하세요 JMP 커뮤니티,
현재 100 개의 서로 다른 시간 값에 대해 "0"또는 "1"을 무작위로 출력하는 프로젝트를 진행 중입니다. 이것의 각 실행은 "씨"에 해당합니다. 어떻게 든 각 시드의 시점에서 시작하여 연속 0의 수를 세는 것을 어떻게 든 코딩해야하며 데이터 테이블에 인쇄합니다. 특정 시간에 평가중인 시드가 1로 시작하면 그 합계는 0입니다. 거기에서 연속적인 0의 모든 합계가 발견되면 평균 (1이 발생하기 전에 평균 0)을 찾아야합니다. 아래에는 내가 지금까지 가지고있는 코드가 첨부되어 있습니다 (종자 및 시간 값 만 생성합니다).
감사,
카일
모두 닫기 (데이터 테이블, 저장 안함);
// 데이터 테이블 만들기
dt = 새 테이블 ( "Case 1",
행 추가 (100),
새 열 ( "시간", 수식 설정 (시퀀스 (1, 100))),
새 열 ( "Seed 1", 숫자, "Continuous", Format ( "Best", 10), Formula (Random Integer (0, 1)))
);
For (i = 2, i <101, i ++,
dt << New Column ( "Seed"|| Char (i), Numeric, Continuous, Formula (Random Integer (0, 1))),
);
다시 : 열의 연속 제로의 합계 금액평균을 어떻게 출력으로 계산 하시겠습니까? 연관 배열에 넣는 방법은 다음과 같습니다.
seed_avg = Associative Array();
nseed = 100;
for(i = 1, i <= nseed, i++,
col_name = "Seed " || char(i);
col = Column(dt, col_name );
count_vec = [];
count = 0;
for(j = 1, j <= N Row(dt), j++,
if(col[j] == 0,
count++,
if(col[j] == 1 & count != 0,
count_vec = count_vec |/ count;
count = 0
);
)
);
Insert Into(seed_avg, col_name, mean(count_vec));
);
테이블 또는 원하는 형식으로 출력하도록 쉽게 조정할 수 있습니다.
다시 : 열의 연속 제로의 합계 금액자세한 답변을 보내 주셔서 감사합니다.하지만 여전히 문제가 있습니다. 내 이해에서 Associative Array는 열쇠를 만듭니다 ... 예를 들어, 출력에는 "["Seed 1 "] => 2.143"이 포함됩니다.
각 실행은 시간 값에 해당하므로 "["Time 1 "=> 2.143"]과 같은 모양이 아니어야합니까?
또한 테이블에 정확히 어떻게 적용됩니까?
나는 dt << New Column ( "Mean", Set Formula (seed_avg)); 하지만 열의 각 항목에 대한 전체 값 목록을 제공합니다.
감사다시 : 열의 연속 제로의 합계 금액죄송합니다. 각 열이 아닌 행을 가로 질러 가고 싶어한다는 것을 이해하지 못했습니다. 다음은 새로운 열의 결과를 기준으로 가져 오는 방법입니다.
dt << New Column("Average", numeric);
nseed = 100;
for(i = 1, i <= N Row(dt), i++,
count_vec = [];
count = 0;
for(j = 1, j <= nseed, j++,
col = Column(dt, "Seed " || char(j) );
if(col[i] == 0,
count++,
if(col[j] == 1 & count != 0,
count_vec = count_vec |/ count;
count = 0
);
)
);
dt:Average[i] = mean(count_vec);
);