列内の連続するゼロの合計量こんにちはJMPコミュニティ、
現在、100種類の時間値に対して「0」または「1」をランダムに出力するプロジェクトに取り組んでいます。これを実行するたびに、「シード」に対応します。各シードの時点から始まる連続する0の数を数えるコードを何らかの方法でコーディングし、それをデータテーブルに出力する必要があります。特定の時間に評価されるシードが1で始まる場合、その合計は0です。そこから、連続する0のこれらの合計がすべて見つかったら、その平均(1が発生する前のゼロの平均)を見つける必要があります。以下に、これまでに持っているコードを添付します(シードと時間値のみを作成します)。
おかげで、
カイル
すべて閉じる(データテーブル、保存なし);
//データテーブルを作成します
dt =新しいテーブル(「ケース1」、
行を追加(100)、
新しい列(「時間」、Set Formula(Sequence(1、100)))、
新しい列(「シード1」、数値、「連続」、フォーマット(「ベスト」、10)、式(ランダム整数(0、1)))
);
For(i = 2、i <101、i ++、
dt <<新しい列(「シード」|| 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);
);