下面是一些用于生成显示生成的层次结构的图的代码,但未显示并返回以下错误:
图形(设备)中的错误:“边缘”必须是数字或字符
代码如下:
library(igraph)
# n = num of field devices
generate_hierarchy <- function(n=100, levels=3) {
k <- c()
for(i in 0:n) {
curDevice <- paste("device", i)
# For lower levels, generate 1-2 parent units
for(j in 0:levels) {
p = sample(1:2, 1)
for(k in 0:p) {
k <- c(k, c(curDevice, paste("unit", k, j)))
}
}
}
return(devices)
}
### Generate ###
field_devices <- 100
levels <- 2*log10(field_devices)
devices <- generate_hierarchy(field_devices, levels)
print(devices)
# Creeate basic graph
g <- graph(devices)
plot(g, vertex.color = "lightcoral", vertex.size = 40, edge.color='indianred4')
我已经看到其他人制作了如下图,所以我不确定为什么这段代码会引发错误:
g <- graph(c("Person1", "Person2", "Person1", "Person3"))
答案 0 :(得分:1)
运行示例的错误是
Error in generate_hierarchy(field_devices, levels) :
object 'devices' not found
如果将return语句更改为return (k)
,那么我可以无错误地运行代码,并可以看到图:
generate_hierarchy <- function(n=100, levels=3) {
k <- c()
for(i in 0:n) {
curDevice <- paste("device", i)
# For lower levels, generate 1-2 parent units
for(j in 0:levels) {
p = sample(1:2, 1)
for(k in 0:p) {
k <- c(k, c(curDevice, paste("unit", k, j)))
}
}
}
return(k)
}
field_devices <- 100
levels <- 2*log10(field_devices)
devices <- generate_hierarchy(field_devices, levels)
[enter image description here][1]
g <- graph(devices)
plot(g, vertex.color = "lightcoral", vertex.size = 40, edge.color='indianred4')
图片:https://i.stack.imgur.com/E5pD2.png(由于帐户年龄太小,我无法嵌入图片)。