#r #vector #attributes #igraph
#r #вектор #атрибуты #igraph
Вопрос:
Для сетевого анализа с использованием igraph я пытаюсь настроить метаданные вершин таким образом, чтобы были доступны числовые векторы для создания вершин кругового графика на основе различных комбинаций столбцов из моего фрейма данных.
Используя этот пример, чтобы проиллюстрировать настройку моих данных:
df lt;- data.frame(vName=c('Joe','Rose','Matt','Val'), Red=c(2.5, 1, 1, 0.9), Blue=c(3, 3, 1, 1), Yellow=c(2.9, 2.1, 3.2, 1.1)) df # vName Red Blue Yellow # 1 Joe 2.5 3 2.9 # 2 Rose 1.0 3 2.1 # 3 Matt 1.0 1 3.2 # 4 Val 0.9 1 1.1
Каков наилучший подход к сборке векторов в виде столбцов для каждой строки путем объединения данных из определенных столбцов? Экс. Где новый столбец RedBlue будет возвращать векторные значения как таковые:
df # vName Red Blue Yellow RedBlue # 1 Joe 2.5 3 2.9 2.5, 3.0 # 2 Rose 1.0 3 2.1 1.0, 3.0 # 3 Matt 1.0 1 3.2 1.0, 1.0 # 4 Val 0.9 1 1.1 0.9, 1.0 df$RedBlue #[[1]] #[1] 2.5 3.0 #[[2]] #[2] 1.0 3.0 #[[3]] #[3] 1.0 1.0 #[[4]] #[4] 0.9 1.0
Или есть другой подход, который имеет больше смысла в контексте построения вершин кругового графика в igraph с использованием метаданных вершин?
Большое Спасибо!
Ответ №1:
Вы можете попробовать
df lt;- transform( df, RedBlue = asplit(cbind(Red, Blue), 1) )
и вы увидите
gt; df$RedBlue [[1]] Red Blue 2.5 3.0 [[2]] Red Blue 1 3 [[3]] Red Blue 1 1 [[4]] Red Blue 0.9 1.0 gt; df vName Red Blue Yellow RedBlue 1 Joe 2.5 3 2.9 2.5, 3.0 2 Rose 1.0 3 2.1 1, 3 3 Matt 1.0 1 3.2 1, 1 4 Val 0.9 1 1.1 0.9, 1.0