J 动词或短语将相同元素组合在一起
J verb or phrase to group together runs of identical elements
这可以通过示例得到最好的证明:
输入:
1 2 2 1 1 1 2 3 3
输出:
1; 2 2; 1 1 1; 2; 3 3
┌─┬───┬─────┬─┬───┐
│1│2 2 │1 1 1│2│3 3│
└─┴───┴─────┴─┴───┘
所以我正在寻找类似 Key /.
的东西,但 Key 会将 all 组合在一起,all twos在一起,等等。我只想将连续的运行组合在一起。
最后一个想法:Key可以成功使用,如果我能先为它生成一个x
,看起来像这样:
0 1 1 2 2 2 3 4 4 NB. x suitable for use in Key
1 2 2 1 1 1 2 3 3 NB. original data
我想不出生成这样一个 x 的默认解决方案(我的想法涉及一个变异的临时变量来存储当前 "label",即 [=14= 中的数字 0 到 4 ] 以上定义)
在这种情况下,Key /.
的替代方法是二元 Cut ;.
:
构建 x
为:
(1 ,~ 2 ~:/\ ]) 1 2 2 1 1 1 2 3 3
1 0 1 0 0 1 1 0 1
这些标志着小组的结束。然后使用 dyadic <;.2
将这些组框起来:
((1 ,~ 2 ~:/\ ]) <;.2 ]) 1 2 2 1 1 1 2 3 3
┌─┬───┬─────┬─┬───┐
│1│2 2│1 1 1│2│3 3│
└─┴───┴─────┴─┴───┘
这可以缩写为:
(<;.2~ 1 ,~ 2&(~:/\)) 1 2 2 1 1 1 2 3 3
┌─┬───┬─────┬─┬───┐
│1│2 2│1 1 1│2│3 3│
└─┴───┴─────┴─┴───┘
这可以通过示例得到最好的证明:
输入:
1 2 2 1 1 1 2 3 3
输出:
1; 2 2; 1 1 1; 2; 3 3
┌─┬───┬─────┬─┬───┐
│1│2 2 │1 1 1│2│3 3│
└─┴───┴─────┴─┴───┘
所以我正在寻找类似 Key /.
的东西,但 Key 会将 all 组合在一起,all twos在一起,等等。我只想将连续的运行组合在一起。
最后一个想法:Key可以成功使用,如果我能先为它生成一个x
,看起来像这样:
0 1 1 2 2 2 3 4 4 NB. x suitable for use in Key
1 2 2 1 1 1 2 3 3 NB. original data
我想不出生成这样一个 x 的默认解决方案(我的想法涉及一个变异的临时变量来存储当前 "label",即 [=14= 中的数字 0 到 4 ] 以上定义)
在这种情况下,Key /.
的替代方法是二元 Cut ;.
:
构建 x
为:
(1 ,~ 2 ~:/\ ]) 1 2 2 1 1 1 2 3 3
1 0 1 0 0 1 1 0 1
这些标志着小组的结束。然后使用 dyadic <;.2
将这些组框起来:
((1 ,~ 2 ~:/\ ]) <;.2 ]) 1 2 2 1 1 1 2 3 3
┌─┬───┬─────┬─┬───┐
│1│2 2│1 1 1│2│3 3│
└─┴───┴─────┴─┴───┘
这可以缩写为:
(<;.2~ 1 ,~ 2&(~:/\)) 1 2 2 1 1 1 2 3 3
┌─┬───┬─────┬─┬───┐
│1│2 2│1 1 1│2│3 3│
└─┴───┴─────┴─┴───┘