问题描述
我是 R 的新手,我正在为一个大学项目工作,我尝试使用 setColor 函数根据另一个名为“cores”的列表为节点网络的节点着色,但是当我尝试运行时它会导致错误 “Error in setColor(i): object "cores" not found”,导致绘图未着色。
这是我写的代码:
library(igraph)
g1<- graph(edges=c(1,131,1,123,114,2,67,65,3,47,17,4,120,181,81,5,153,33,21,6,126,89,7,78,159,8,178,147,107,79,9,35,80,10,187,192,11,75,70,86,48,12,22,39,190,140,13,175,191,14,169,185,54,15,166,84,59,88,16,50,92,165,18,161,177,94,19,63,171,144,20,24,30,25,45,23,112,195,34,99,43,134,26,105,27,64,28,95,29,113,31,116,32,173,122,55,150,36,132,85,155,37,38,66,103,196,40,44,133,41,117,197,42,164,172,118,46,76,90,184,136,101,49,141,158,183,51,121,52,69,56,53,152,61,57,137,58,60,72,62,170,97,130,68,135,188,179,162,193,119,71,111,149,109,176,73,182,74,110,146,77,129,186,82,145,83,157,100,124,87,128,91,93,96,98,194,127,102,104,163,168,106,108,151,148,160,115,139,198,174,125,180,143,189,138,142,199,156,154,167,200,173),directed=F )
cores<- c(1,3
)
V(g1)
setColor<-function(n)
{
if(cores[n] == 1)
{
return("green")}
else if (cores[n] == 2){
return("blue")
}
else if (cores[n] == 3){
return("orange")
}
else if (cores[n] == 4){
return("red")
}
else if (cores[n] == 5){
return("grey")
}
else if (cores[n] == 6){
return("black")
}
}
for(i in 1:200){
V(g1)[i]$color <- setColor(i)
}
plot(g1,vertex.size = 5,vertex.label=NA)
legend(x= "bottomleft",legend=c("Saudável com máscara","Saudavel sem mascara","Infectado com mascara","Infectado sem mascara"),fill = c("green","blue","orange","red"),pch=c(".",".","."),cex = 0.7)