计算多个字符的值并标记位置?您好,我怎样才能从下面的 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 | 二十六 | 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,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 | | | | | | |
基础数据分析与建模回复:计算多个字符的值并标记位置?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;
);回复:计算多个字符的值并标记位置?嗨,jthi,
谢谢你的帮助。但如果我有多个行,我可以使用矩阵或其他命令代替
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"}谢谢你!
回复:计算多个字符的值并标记位置?将对数据表的引用获取到 dt 变量(例如 Open() 将返回对已打开的表的引用),只要列名为 Pattern,脚本就应该可以工作
回复:计算多个字符的值并标记位置?谢谢,但我的意思是我有 6453 行(我需要将所有数据复制到“set value { }”中。您能否为我提供更好的解决方案?非常感谢。
回复:计算多个字符的值并标记位置?您无需复制任何内容。只需获取对数据表的引用即可。
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;
);
回复:计算多个字符的值并标记位置?嗨,贾莫,
非常感谢。这是工作。
回复:计算多个字符的值并标记位置?您是说您的实际数据当前在 JMP 矩阵中,而不是在 JMP 数据表中?
回复:计算多个字符的值并标记位置?嗨吉姆,
这是我的错误,我明白了。我的数据在 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,1,1,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,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,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,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,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,0 | 3 |
| 0,1,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,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,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0 | 4 |
回复:计算多个字符的值并标记位置?您可以通过几种不同的方法来做到这一点。
- 使用 Recode 创建一个包含新组值的新列。
- 设置计数列的列属性(称为值标签),然后使用选项“允许范围”来更改显示的值
- 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"
)
)
);
回复:计算多个字符的值并标记位置?嗨吉姆,
非常感谢,但是当我尝试 1 和 2 时,由于数据行太多(6000+),似乎很难。3 不起作用,因为上面有多个模式(6000 行中有 28 个位置的 2000 个模式)。
此致,
提拉猜
回复:计算多个字符的值并标记位置?我误解了。现在我回复你,我相信 JMP 可以做你想做的事……如果你能定义如何确定什么是组的规则?
回复:计算多个字符的值并标记位置?嗨,吉姆,谢谢你,我尝试结合数据模式。一般来说,如果我的数据位置 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。我想在所有数据中找到其他模式。你能指导我吗?
谢谢你!
回复:计算多个字符的值并标记位置?我仍然感到困惑。您附上了一个示例数据表。您能否从示例数据表中选取特定的一行并说明如何分析该行的数据?