如何在交互网络中使用ifelse()语句更改颜色?

时间:2016-09-27 16:37:15

标签: r

我正在使用二分包来绘制植物传粉者的相互作用。我将原始数据转换为包使用的数据框并绘制网页。但我希望情节中的相互作用的颜色对于一个物种(B.griseocollis)是不同的,我不能让它起作用。

以下是我的代码:

frame2webs(bombus_rxc, varnames= c("ID","beesp","trtmnt"), type.out="list",
 emptylist=TRUE)

f2w <- frame2webs(bombus_rxc, varnames= c("ID","beesp","trtmnt"), 
type.out="list", emptylist=TRUE)

仅供参考“pbg”是我所拥有的“trtmnts”之一

plotweb(f2w$pbg)

plotweb(f2w$pbg, col.interaction = ifelse(as.character(bombus_rxc$beesp) == 
"B.griseocollis", "cyan4", "grey80"))

其中两个互动转向青色而不是正确的两个。我发现没有人拥有我的数据集但只是好奇我的col.interaction语句中的参数是否有明显错误

1 个答案:

答案 0 :(得分:1)

当你调用你的颜色时,你正在调用一个与最终情节不符的矢量。

这是一个粗略的可重复示例(您应该尝试为数据制作这些示例,以便更轻松地回答您的问题):

bombus_rxc=mtcars
bombus_rxc$ID=rownames(bombus_rxc)
bombus_rxc$beesp=bombus_rxc$carb
bombus_rxc$trtmnt=rep(c("pbg","abc"))
bombus_rxc

以下是如何使情节有效:

frame2webs(bombus_rxc, varnames= c("ID","beesp","trtmnt"), type.out="list",
 emptylist=TRUE)

f2w <- frame2webs(bombus_rxc, varnames= c("ID","beesp","trtmnt"), 
type.out="list", emptylist=TRUE)

plotweb(f2w$pbg)

plotweb(f2w$pbg,col.interaction=ifelse(colnames(f2w$pbg)==1,"cyan4","grey80"))

希望它适用于您的真实数据!