I have a matrix. Now I want to use `pivot_longer`

in my matrix. My matrix is given below

```
ID_1 ID_2 ID_3 ID_4 ID_8 ID_5 ID_7 ID_100
ID_1 0 1 1 1 Inf 2 2 Inf
ID_2 1 0 2 1 Inf 1 2 Inf
ID_3 1 2 0 2 Inf 3 1 Inf
ID_4 1 1 2 0 Inf 2 1 Inf
ID_8 Inf Inf Inf Inf 0 Inf Inf 1
ID_5 2 1 3 2 Inf 0 3 Inf
ID_7 2 2 1 1 Inf 3 0 Inf
ID_100 Inf Inf Inf Inf 1 Inf Inf 0
```

Using `pivot_longer`

I want only those values that have `3`

. The output look likes

```
nodeA nodeB value
ID_3 ID_5 3
ID_5 ID_3 3
ID_5 ID_7 3
ID_7 ID_5 3
```

The code I am trying

```
mat <- mat %>%
pivot_longer(names_to = "nodeB", values_to = "valu")
```

But I am getting an error, like

```
Error in UseMethod("pivot_longer") :
no applicable method for 'pivot_longer' applied to an object of class "c('matrix', 'double', 'numeric')"
```

Then, I tried to convert the `matrix`

into `dataframe`

and trying to use `column_to_rownames`

but getting an error

```
mat_df <- as_data_frame(mat)
mat_df <-column_to_rownames(mat_df, var = ID_1)
```

The error I am getting

`Error in name %in% names2(x) : object 'ID_1' not found`

**How can I use pivot_longer in my matrix?**

**Note**: My actual expected output is like the below one. Because, `ID_3 ID_5 3`

and `ID_5 ID_3 3`

are same (in terms of concept).

```
nodeA nodeB value
ID_3 ID_5 3
ID_5 ID_7 3
```

Reproducible Data

```
structure(c(0, 1, 1, 1, Inf, 2, 2, Inf, 1, 0, 2, 1, Inf, 1, 2,
Inf, 1, 2, 0, 2, Inf, 3, 1, Inf, 1, 1, 2, 0, Inf, 2, 1, Inf,
Inf, Inf, Inf, Inf, 0, Inf, Inf, 1, 2, 1, 3, 2, Inf, 0, 3, Inf,
2, 2, 1, 1, Inf, 3, 0, Inf, Inf, Inf, Inf, Inf, 1, Inf, Inf,
0), .Dim = c(8L, 8L), .Dimnames = list(c("ID_1", "ID_2", "ID_3",
"ID_4", "ID_8", "ID_5", "ID_7", "ID_100"), c("ID_1", "ID_2",
"ID_3", "ID_4", "ID_8", "ID_5", "ID_7", "ID_100")))
```