【发布时间】:2018-05-30 02:50:32
【问题描述】:
我有以下矩阵:
> M
[,1] [,2] [,3] [,4]
[1,] 1 1 3 2
[2,] 2 2 1 1
[3,] 3 2 3 1
[4,] 2 2 2 2
[5,] 1 1 1 1
[6,] 3 2 3 2
[7,] 1 1 3 1
[8,] 2 1 1 1
文件 txt 中的每一行有四个位置,用空格隔开,代表一棵树的路径。树由一个根节点和构成层次结构的附加节点的级别组成:第一和第三级别可以有三个节点(1、2 或 3);其余位置只能采用两个值:1 或 2。
那么,前面例子描述的树如下:
我会计算树中分支的总数。例如,上面描绘的树总共有 21 个分支。
我的解决方案如下:
nrow(unique( M[ , 1:2 ] ))+nrow(unique( M[ , 1:3 ] ))+nrow(unique( M[ , 1:4 ] ))
但它返回 18...
【问题讨论】:
-
您的公式中不需要
M[,1]吗?那将增加三个。 -
如果你添加
nrow(unique(M[, 1, drop = FALSE])),你会得到你想要的吗? -
你没有从根->第一个节点计算分支。
-
哦,谢谢!我忘记了根。