Я пытаюсь использовать библиотеку networkD3 в R для создания диаграммы аккордов для моих данных. Я следую логике, представленной в этом сообщении stackoverflow: Проблемы с сетевой хордовой диаграммой в R
Меня особенно интересует создание диаграммы аккордов с использованием igraph и networkd3, поскольку у меня нет прав администратора на моем компьютере для установки других библиотек (например, circlize).
Я создал фальшивые данные в R:
library(igraph)
library(dplyr)
library(networkD3)
#create file from which to sample from
x5 <- sample(1:100, 1100, replace=T)
#convert to data frame
x5 = as.data.frame(x5)
#create first file (take a random sample from the created file)
a = sample_n(x5, 1000)
#create second file (take a random sample from the created file)
b = sample_n(x5, 1000)
#combine
c = cbind(a,b)
#create dataframe
c = data.frame(c)
#rename column names
colnames(c) <- c("a","b")
Далее я создал матрицу смежности:
# создать матрицу смежности
g1 <- graph_from_adjacency_matrix(c)
Проблема возникает, когда я пытаюсь создать сеть аккордов из матрицы смежности:
chordNetwork(Data = c,
width = 500,
height = 500,
)
Error in chordNetwork(Data = g, width = 500, height = 500, ) :
Data must be of type matrix or data frame
Кто-нибудь знает, что я делаю не так?
Спасибо
cbind
вещей перед созданием фреймов данных, просто вызовитеdata.frame(a, b)
- вы создаете матрицу, а затем приводите ее к фрейму данных, что вызовет проблемы, если ваши переменные не одного типа. На самом деле лучше не называть переменныеc
, так как это обычная функция. - person alistaire   schedule 02.11.2020igraph::graph_from_edgelist(as.matrix(c))
? - person alistaire   schedule 03.11.2020?chordNetwork
; ему не нужен объект igraph в качестве входных данных, ему нужна матрица, как он вам говорит. Вы можете привести объект igraph к матрице смежности с помощьюas_adjacency_matrix()
(установитьsparse = FALSE
) или перейти прямо туда (что есть много способов сделать, например,unclass(table(c))
). Тем не менее, у этого графа слишком много узлов, чтобы его можно было использовать с таким типом визуализации. - person alistaire   schedule 05.11.2020