Я пытаюсь манипулировать атрибутами подмножества ребер в объекте igraph в R, используя edge_attr (или, альтернативно, set_edge_attr) на основе определенных критериев. Например, в приведенном ниже коде я пытаюсь удвоить атрибут возраста ребер с весом = 1.
nodes <- data.frame(name=c('1', '4', '5', '6', '8'))
edges <- data.frame(
from = c('1', '4', '5', '1', '8', '1'),
to = c('4', '5', '6', '8', '6', '6'),
weight = c(1, 1, 1.5, 1.5, 2.5, 5),
age=c(48, 33, 45, 34, 21, 56)
)
graph = graph_from_data_frame(d = edges, vertices = nodes, directed=FALSE)
edgeseq = E(graph)[[weight==1]]
newage <- edge_attr(graph, "age", index = edgeseq)*2
edge_attr(graph, "age", edgeseq) <- newage
#Alternatively:
set_edge_attr(graph, "age", edgeseq, newage)
Однако это вызывает ошибку:
Error in `[[<-`(`*tmp*`, index, value = value) :
attempt to select more than one element in vectorIndex
ошибка не возникает, когда я устанавливаю атрибуты без последовательности ребер. Любая помощь будет принята с благодарностью!