Matriz dispersa a un marco de datos en R

Tengo una matriz dispersa

Formal class 'dgCMatrix' [package "Matrix"] with 6 slots
  ..@ i       : int [1:37674] 1836 2297 108 472 1735 1899 2129 2131 5 67 ...
  ..@ p       : int [1:3417] 0 2 8 22 25 35 44 45 45 47 ...
  ..@ Dim     : int [1:2] 3416 3416
  ..@ Dimnames:List of 2
  .. ..$ : chr [1:3416] "AAA" "AAE" "AAL" "AAN" ...
  .. ..$ : chr [1:3416] "AAA" "AAE" "AAL" "AAN" ...
  ..@ x       : num [1:37674] 1 1 1 1 1 1 1 1 1 1 ...
  ..@ factors : list()

¿Qué es una forma rápida de convertir esta matriz en una lista como (excepto por unfor loop):

Origin Destination Weight
AAA AAE 4
AAL AAN 5

Nota: Solo necesito obtener el Origen y el Destino para Peso> 0

Respuestas a la pregunta(2)

Su respuesta a la pregunta