我有以下来自贝叶斯网络学习算法的字符串(如来自bnlearn
或deal
包):
[1] "[wst|af:bq:rloss_s:pre3][af|bq][d|wst:af:con:rloss_s][bq|con][con|af][rloss_s|af:con:pre3][pre3|af:con]"
该字符串定义了变量之间的连接以及连接的方向。括号( )中每一项的第一个变量[...]
代表一个节点,后面的所有变量|
代表在方向上连接到第一个节点的节点。这些变量由 分隔:
。
我想将字符串转换为表示每个变量之间连接的 data.frame。它应该如下所示:
> data.frame(string_table)
from to
1 af wst
2 bq wst
3 rloss_s wst
4 pre3 wst
5 bq af
6 wst d
7 af d
8 con d
9 rloss_s d
10 con bq
11 af con
12 af rloss_s
13 con rloss_s
14 pre3 rloss_s
15 af pre3
16 con pre3