Изменить форму данных, исключая диагонали

Вот датафрейм в R:

d <- data.frame(c = 1:3, c2 = 4:6, c3 = 7:9)
rownames(d) <- c('r1', 'r2', 'r3')
d

   c1 c2 c3
r1  1  4  7
r2  2  5  8
r3  3  6  9

Я хочу собрать новый фрейм данных на основе всех элементов (за исключением диагоналей) в d как показано ниже:

row col value
r1  c2   4
r1  c3   7
r2  c1   2
r2  c3   8
r3  c1   3
r3  c2   6

Порядок строк не имеет значения. Какой эффективный способ добиться этого? Вопрос имеет дополнительную часть от типичного изменения формы, поскольку я хочу исключить эти диагональные элементы.

0 ответов

Другие вопросы по тегам