Maybe the following will help clarify the difference between subsetting a list with and with [[. If [[ receives an unquoted value, it is interpreted as the name of a variable and the value of that variable is used as the element name. The takes the value passed to it as the name of the list element, whether or not is is quoted.
MyList <- list(A = 1:4, x = "Here is x")
x <- "A"
MyList[[x]]
#> [1] 1 2 3 4
MyList$x
#> [1] "Here is x"
MyList[["x"]]
#> [1] "Here is x"
MyList$"x"
#> [1] "Here is x"