'Access an element of a list in the same manner how you access an element of a matrix

I have a matrix:

mat <- matrix(c(3,9,5,1,-2,8), nrow = 2)

     [,1] [,2] [,3]
[1,]    3    5   -2
[2,]    9    1    8

I have a list:

lst <- as.list(data.frame(matrix(c(3,9,5,1,-2,8), nrow = 2)))

$X1
[1] 3 9

$X2
[1] 5 1

$X3
[1] -2  8

I can access my matrix by mat[i,j] I can access my list lst[[c(i,j)]]

But if in a matrix if I do mat[1,2] I get a 5. If I use same numbers in a list lst[[c(1,2)]] I get 9.

Is there a way I can get the same numbers when I access a list? Maybe manipulate the list in certain manner? When I use lst[[c(1,2)]] I want to get 5 instead of 9.I want to get the same numbers I get when using mat[i,j].



Solution 1:[1]

You can use transpose() from purrr to transpose a list.

lst2 <- purrr::transpose(lst)

lst2[[c(1,2)]]
# [1] 5

Solution 2:[2]

You can try

> list2DF(lst)[1, 2]
[1] 5

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Darren Tsai
Solution 2 ThomasIsCoding