Изменить форму данных, исключая диагонали
Вот датафрейм в 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
Порядок строк не имеет значения. Какой эффективный способ добиться этого? Вопрос имеет дополнительную часть от типичного изменения формы, поскольку я хочу исключить эти диагональные элементы.