複数の文字の値をカウントし、位置をマークしますか?こんにちは。以下のように、1 特性列から 0、1、2 の数字を数えるにはどうすればよいでしょうか。よろしくお願いします。(x = 欠落)
| パターン | カウント 0 | カウント1 | カウント2 | ポジション 0 | ポジション1 | ポジション2 |
| x,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 | 26 | 1 | 0 | 2、3、5、6、7、8、9、10、11、12、13、14、15、16、17、18、19、20、21、22、23、24、25、26、27、28 | 4 | 0 |
| 2,2,2,2,2,0,0,0,0,0,0,1,1,1,2,0,1,1,1,2,2,2,0,0,0,0,0,0 | | | | | | |
| 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,0 | | | | | | |
| 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1 | | | | | | |
| 2,2,2,2,2,2,2,2,2,0,2,2,2,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2 | | | | | | |
基本的なデータ分析とモデリングRe: 複数文字の値をカウントし、位置をマークしますか?Loc()でインデックスを取得できます。以下は簡単な解決策です。
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(5),
Compress File When Saved(1),
New Column("Pattern",
Character,
"Nominal",
Set Values(
{"x,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0",
"2,2,2,2,2,0,0,0,0,0,0,1,1,1,2,0,1,1,1,2,2,2,0,0,0,0,0,0",
"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,0",
"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1",
"2,2,2,2,2,2,2,2,0,2,2,2,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2"}
)
)
);
vals = {"0", "1", "2"};
For Each({val}, vals,
new_col1 = dt << New Column("Count " || val, Numeric, Continuous, Formula(
N Items(Loc(Words(:Pattern, ","), val));
));
new_col2 = dt << New Column("Position " || val, Character, Nominal, Formula(
Char(Substitute(Char(Loc(Words(:Pattern, ","), val);), "[", "", "]", "", " ", ""));
));
dt << run formulas;
new_col1 << delete formula;
new_col2 << delete formula;
);Re: 複数文字の値をカウントし、位置をマークしますか?こんにちは。
ご協力ありがとうございます。しかし、複数の行がある場合、代わりにマトリックスまたは他のコマンドを使用できますか?
Set Values(
{"x,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0",
"2,2,2,2,2,0,0,0,0,0,0,1,1,1,2,0,1,1,1,2,2,2,0,0,0,0,0,0",
"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,0",
"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1",
"2,2,2,2,2,2,2,2,0,2,2,2,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2"}ありがとう!
Re: 複数文字の値をカウントし、位置をマークしますか?データテーブルへの参照をdt変数に取得します(たとえば、Open()は開かれたテーブルへの参照を返します)。列の名前がPatternである限り、スクリプトは機能します。
Re: 複数文字の値をカウントし、位置をマークしますか?ありがとうございます。ただし、6453 行あるので、すべてのデータを「set value { }」にコピーする必要があります。これに対するより良い解決策を教えていただけますか? ありがとうございます。
Re: 複数文字の値をカウントし、位置をマークしますか?何もコピーする必要はありません。データ テーブルへの参照を取得するだけです。
dt = Open("pathtomytable");
または
dt = Datatable("mytablename")
または(通常は悪い選択肢だが、時々必要なことを実行する)
dt = Current Data Table();
私のソリューションのこの部分を置き換えるには、ニーズに合ったものを使用してください
dt = New Table("Untitled",
Add Rows(5),
Compress File When Saved(1),
New Column("Pattern",
Character,
"Nominal",
Set Values(
{"x,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0",
"2,2,2,2,2,0,0,0,0,0,0,1,1,1,2,0,1,1,1,2,2,2,0,0,0,0,0,0",
"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,0",
"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1",
"2,2,2,2,2,2,2,2,0,2,2,2,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2"}
)
)
);
もっと見る...For example
Names Default To Here(1);
dt = Current Data Table();
vals = {"0", "1", "2"};
For Each({val}, vals,
new_col1 = dt << New Column("Count " || val, Numeric, Continuous, Formula(
N Items(Loc(Words(:Pattern, ","), val));
));
new_col2 = dt << New Column("Position " || val, Character, Nominal, Formula(
Char(Substitute(Char(Loc(Words(:Pattern, ","), val);), "[", "", "]", "", " ", ""));
));
dt << run formulas;
new_col1 << delete formula;
new_col2 << delete formula;
);
Re: 複数文字の値をカウントし、位置をマークしますか?こんにちは、ジャーモさん
本当にありがとう。仕事だよ。
Re: 複数文字の値をカウントし、位置をマークしますか?実際のデータは現在、JMP データ テーブルではなく、JMP マトリックスにあるということですか?
Re: 複数文字の値をカウントし、位置をマークしますか?こんにちは、ジムさん
それは私のせいだと理解しています。私のデータは JMP テーブルにあります。Jarmo のアドバイスに従ってすでに動作しています。さらに、「パターン」列のデータを作成して同じグループにグループ化するというアイデアはありますか? たとえば、値が 1 の位置 1 ~ 5 は、値が 1 の位置 6 ~ 8 と同じです。(複数の位置で同じパターンの値を生成するにはどうすればよいでしょうか?)
| パターン | パターン名 |
| 0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 | 1 |
| 0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 | 1 |
| 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 | 2 |
| 0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 | 2 |
| 0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 | 2 |
| 0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0 | 2 |
| 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0 | 2 |
| 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0 | 2 |
| 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1 | 2 |
| 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2 | 3 |
| 0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0 | 3 |
| 0,1,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,x,0 | 4 |
| 0,0,0,1,0,0,0,0,0,0,0,0,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0 | 4 |
| 1,0,0,0,0,1,0,0,0,0,0,0,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0 | 4 |
Re: 複数文字の値をカウントし、位置をマークしますか?これを行うにはいくつかの方法があります。
- 再コード化を使用して、新しいグループ値を持つ新しい列を作成します。
- カウント列の列プロパティ「値ラベル」を設定し、「範囲を許可」オプションを使用して表示される値を変更します。
- Write a little script that creates a new column and does the binning
Names Default To Here( 1 );
dt = Current Data Table();
dt << New Column( "Count 1 Bins",
character,
set each value(
If(
:Count 1 <= 5, "1-5",
:Count 1 <= 10, "6-10",
:Count 1 <= 15, "11-15"
)
)
);
Re: 複数文字の値をカウントし、位置をマークしますか?こんにちは、ジムさん
ありがとうございます。しかし、1 と 2 を試したところ、データ行数が多い (6000 以上) ため難しいようです。3 は、複数のパターン (6000 行に 28 の位置の 2000 パターン) があるため機能しません。
よろしくお願いします、
ティーラチャイ
Re: 複数文字の値をカウントし、位置をマークしますか?私の誤解です。さて、私の返答は、グループが何であるかを判断するルールを定義できれば、JMP であなたが望むことを実行できると確信しているということです。
Re: 複数文字の値をカウントし、位置をマークしますか?こんにちは、ジム。ありがとうございます。データのパターンを組み合わせようとしています。一般的に、データ位置 1-5、6-9、10-11、12-17、18-22、23-25、26-28 は、同じ 0-2 ポイント (各カテゴリの位置を固定しない) がある場合、同じカテゴリです。さらに、カテゴリが 11-17、1 5 6 8 13 18 23 26、2 7 19 24 25 27 28、3 9、4 20 22、21 になることもあります。また、すべてのデータで他のパターンを見つけたいのですが、ご指導いただけますか?
ありがとう!
Re: 複数文字の値をカウントし、位置をマークしますか?まだ混乱しています。サンプル データ テーブルを添付しました。サンプル データ テーブルから特定の行を取り出して、その行のデータをどのように分析するかのロジックを説明していただけますか。