Во-первых, я новичок в R, поэтому извиняюсь, если это простой вопрос.
У меня есть .csv с пограничной сетью групп, людей, связанных с ними, и некоторыми атрибутами людей и групп.
e.g.
Групповой человек ПерсонаГрупповая игра
Снукер Теннис Джейн Доу
B Футбол Футбол Джон Доу
Теннис Билла Смита
B Футбол Футбол Фрэнсис Андервуд
Футбол Теннис Фрэнсис Андервуд
Я нарисовал двудольную сеть:
df <- read.csv("file.csv", header = TRUE, sep = ",")
df.network <- graph.data.frame(df, directed = F)
V(df.network)$type <- bipartite.mapping(df.network)$type
В настоящее время я раскрасил вершины Group и Person по-разному следующим образом:
V(df.network)$color <- ifelse(V(df.network)$type, "grey", "orange")
что я действительно хочу сделать, так это по-разному раскрасить вершины Person в зависимости от поля «Person Game», но, похоже, это не атрибут, к которому я могу получить доступ для вершины, только Edge. Итак, это работает для окраски краев:
E(df.network)$color <- ifelse(E(df.network)$PersonGame=='Snooker',
"red", ifelse(E(df.network)$PersonGame=='Football', "blue", "orange"))
но это не сработает, если я применяю к вершинам вместо ребра, поскольку я не могу заставить атрибут PersonGame применить к вершине.
Кто-нибудь может помочь?