这里我漏掉了什么?我已经清理了工作区并重新启动了会话。这是我的代码中似乎会引起麻烦的部分。我尝试平均一个强度对象的贝叶斯网络弧强度,然后保存平均图的所有节点,然后计算相关节点,保存为字符串的向量:
averaged = averaged.network (strength)
nodes.averaged = unique(unlist(arcs(averaged)))
relevant.nodes = nodes(averaged)[sapply(nodes.averaged, degree, object = averaged) > 0]
averagedNew = subgraph(averaged,relevant.nodes)然后我得到了这个错误:
Error in check.nodes(nodes, graph = x, max.nodes = length(x$nodes)) :
nodes must be a vector of character strings, the labels of the nodes.这是我的relevant.nodes:
[1] "V81" "V97" "V114" "V55" "V93" "V119" "V102" "V23" "V24" "V76" "V67" "V29" "V33" "V84" "V89" "V73"
[17] "V82" "V71" "V45" "V7" "V21" "V109" "V5" "V41" "V65" "V118" "V6" "V20" "V100" "V15" "V59" "V94"
[33] "V57" NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[49] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[65] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[81] NA NA NA NA NA NA NA NA NA NA当我检查抛出此错误消息的位置的源代码时,我发现了if语句(Link)
# nodes must be a vector of character strings.
if (!is(nodes, "character"))
stop("nodes must be a vector of character strings, the labels of the nodes.")并运行它:
(!is(relevant.nodes, "character"))结果就是
[1] FALSE有谁有主意吗?我是R的新手,直到昨天我才发现自己学会了=和<-之间的区别,所以请不要对我太苛刻。
发布于 2017-08-16 05:43:53
我发现我错了..。字符串的向量不允许有任何空数据。这就完成了这个把戏:
relevant.nodes = relevant.nodes[!is.na(relevant.nodes)]https://stackoverflow.com/questions/45701626
复制相似问题