如何计算R中的层次结构级别?
我有一个面板数据,其中包含15年内130家公司的部门。这些数据包括这些公司的边缘名单。如何计算每个公司的层级,并在R中识别层级中的每个部门的层级如何计算R中的层次结构级别?,r,igraph,hierarchical-data,R,Igraph,Hierarchical Data,我有一个面板数据,其中包含15年内130家公司的部门。这些数据包括这些公司的边缘名单。如何计算每个公司的层级,并在R中识别层级中的每个部门的层级 source target 1 A B 2 A C 3 A D 4 B E 5 B F 6 C G 7 D H 8 D I 9 D J 10 G K 在本例中,顶部为A,底部为K。公司
source target
1 A B
2 A C
3 A D
4 B E
5 B F
6 C G
7 D H
8 D I
9 D J
10 G K
在本例中,顶部为A,底部为K。公司的层级为4。我希望我能在部门的面板数据中创建两个变量。像这样:
year compname department complevel departlevel
1 2000 Ben Corp. A 4 1
2 2000 Ben Corp. B 4 2
3 2000 Ben Corp. C 4 2
4 2000 Ben Corp. D 4 2
5 2000 Ben Corp. E 4 3
6 2000 Ben Corp. F 4 3
7 2000 Ben Corp. G 4 3
8 2000 Ben Corp. H 4 3
9 2000 Ben Corp. I 4 3
10 2000 Ben Corp. J 4 3
11 2000 Ben Corp. K 4 4
也许可以试试这个:
library(igraph)
df <- read.table(text = '
source target
1 A B
2 A C
3 A D
4 B E
5 B F
6 C G
7 D H
8 D I
9 D J
10 G K
')
您可以使用data.tree包:
library(data.tree)
df <- read.table(text = '
source target
1 A B
2 A C
3 A D
4 B E
5 B F
6 C G
7 D H
8 D I
9 D J
10 G K
')
tree <- FromDataFrameNetwork(df)
print(tree, "level")
data.frame(node = names(shortest.paths(g)[,'A']), rank = shortest.paths(g)[,'A']+1)
node rank
A A 1
B B 2
C C 2
D D 2
G G 3
E E 3
F F 3
H H 3
I I 3
J J 3
K K 4
library(data.tree)
df <- read.table(text = '
source target
1 A B
2 A C
3 A D
4 B E
5 B F
6 C G
7 D H
8 D I
9 D J
10 G K
')
tree <- FromDataFrameNetwork(df)
print(tree, "level")
levelName level
1 A 1
2 ¦--B 2
3 ¦ ¦--E 3
4 ¦ °--F 3
5 ¦--C 2
6 ¦ °--G 3
7 ¦ °--K 4
8 °--D 2
9 ¦--H 3
10 ¦--I 3
11 °--J 3