gpt4 book ai didi

r - 使用Ifelse时Igraph无效索引错误

转载 作者:行者123 更新时间:2023-12-03 08:24:08 26 4
gpt4 key购买 nike

我有两个节点 vector :

bad_node_pair
+ 2/2 vertices, named:
[1] 1949 1967

remaining_nodes
+ 5/? vertices, named:
[1] 1947 1948 1949 1967 1968

我测试 bad_node_pair中是否存在 remaining_nodes,如果存在,则返回确实出现的那些:
bad_node_pair[names(bad_node_pair) %in% names(remaining_nodes)]
+ 2/2 vertices, named:
[1] 1949 1967

但是,当我将其放入循环中时,我得到:
ifelse(
bad_node_pair[names(bad_node_pair) %in% names(remaining_nodes)],
print(1),
print(0)
)
[1] 1
Error in `[<-.igraph.vs`(`*tmp*`, test & ok, value = c(1, 1)) :
invalid indexing

它打印出答案,但抛出该错误。

到底是怎么回事?

不良节点的数据:
df1 <- read.table(header=T, text=" from   to
8 1949 1967")
bad_g <- graph.data.frame(df1, directed=FALSE)
bad_node_pair <- V(bad_g)

良好节点的数据:
df2 <- read.table(header=T, text=" from   to
1 1947 1948
2 1947 1949
3 1947 1967
4 1947 1968
5 1948 1949
6 1948 1967
7 1948 1968
8 1949 1968")
g <- graph.data.frame(df2, directed=FALSE)
remaining_nodes <- V(g)

最佳答案

如果要使用ifelse,则必须传递一个逻辑参数:

ifelse(any(bad_node_pair[names(bad_node_pair) %in% names(remaining_nodes)]), 1, 0)
[1] 1

要么:
ifelse(names(bad_node_pair) %in% names(remaining_nodes), 1, 0)
[1] 1 1

根据您想要获得的内容(不确定我是否正确理解了您的问题)

关于r - 使用Ifelse时Igraph无效索引错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47590016/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com