R 带字符串的图形-边必须是数字或字符
下面是一些用于生成显示生成的层次结构的图形的代码,但它不显示并返回以下错误: 图形(设备)中出错:“边”必须是数字或字符 代码如下:R 带字符串的图形-边必须是数字或字符,r,igraph,R,Igraph,下面是一些用于生成显示生成的层次结构的图形的代码,但它不显示并返回以下错误: 图形(设备)中出错:“边”必须是数字或字符 代码如下: 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
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')
库(igraph)
#n=现场设备的数量
生成层次结构运行示例时出现的错误是
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')
generate\u层次结构谢谢!我不知道我怎么没注意到:)有没有办法让它成为一个树结构?我将k
重命名为设备,因为for循环中使用了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')