Это может показаться относительно простым, но я пытаюсь изменить данные из фрейма данных в матрицу, поскольку я работаю с новым пакетом D3 chorddiag. Прежде чем я использовал circlize и зависел от использования возможностей dataframe. Похоже, что Chorddiag полагается исключительно на матрицы, поэтому мне интересно, как прыгать через типы. Ниже приведен пример:Как преобразовать данные из кадра/datatable в матрицу в R для диаграммы аккордов?
library(circlize)
library(chorddiag)
from = c("A", "A", "A", "A", "B", "B", "C", "C", "D")
to = c("B", "C", "D", "J", "E", "F", "G", "H", "I")
value = c(5,8,2,5,5,6,7,8,11)
food = data.frame(from, to, value)
food
chordDiagram(food)
#now in chordiag how to transform into matrix like m?
m <- matrix(c(11975, 5871, 8916, 2868,
1951, 10048, 2060, 6171,
8010, 16145, 8090, 8045,
1013, 990, 940, 6907),
byrow = TRUE,
nrow = 4, ncol = 4)
groupnames <- c("black", "blonde", "brown", "red")
row.names(m) <- groupnames
colnames(m) <- groupnames
chorddiag(m)
Как изменить пищу, чтобы она напоминала m? Я подумал, может быть что-то вроде ниже, но я не уверен, как добавить имена в Цените помощь
matrix(data = food$value, nrow = length(food$from), ncol = length(food$to), byrow = TRUE
#,dimnames =
)
'xtabs (value ~., Food)'? – alistaire