列中連續零的總和您好JMP社區,
我目前正在從事一個項目,該項目針對100個不同的時間值隨機輸出“ 0”或“ 1”。每次運行都對應一個“種子”。我需要以某種方式編寫一些代碼,該代碼計算每個種子從某個時間點開始的連續0的數量,然後將其打印在數據表中。如果在特定時間評估的種子以1開始,則其總和為0。從那裡,一旦找到所有這些連續0的總和,我就需要找到其平均值(出現1之前零的平均值)。下面附帶的是我到目前為止的代碼(它僅創建種子和時間值)。
謝謝,
凱爾
全部關閉(數據表,不保存);
//製作數據表
dt =新表格(“案例1”,
添加行(100),
新建列(“時間”,設置公式(序列(1,100))),
新列(“種子1”,數值,“連續”,格式(“最佳”,10),公式(隨機整數(0、1)))
);
對於(i = 2,i <101,i ++,
dt << New Column(“ Seed” || Char(i),數值,連續,公式(隨機整數(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));
);
這可以很容易地調整為輸出到表格或您喜歡的任何格式。
關於列中連續零的總和感謝您的詳細回复-但是,我仍然遇到一些麻煩。據我了解,關聯數組是一個關鍵... 例如,輸出包含“ [“ 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);
);