¿Depurar (sustituir (x)) en lapply?

Me gustaría usar una función que use el estándardeparse(substitute(x)) truco dentrolapply. Lamentablemente acabo de recuperar el argumento del bucle. Aquí está mi ejemplo reproducible completamente inútil:

# some test data
a <- 5
b <- 6 
li <- list(a1=a,b2=b)

# my test function
tf <- function(obj){
nm <- deparse(substitute(obj))
res <- list(myName=nm)
res
}

tf(a)
#returns
$myName
[1] "a"

lo cual está bien. Si yo usolapply O bien consigo[[1L]] o lax Argumento de una función anónima.

lapply(li,function(x) tf(x))
# returns
$a1
$a1$myName
[1] "x"


$b2
$b2$myName
[1] "x"

¿Hay alguna manera de obtener lo siguiente?

$a1
$a1$myName
[1] "a1"


$b2
$b2$myName
[1] "b1"

Si hay algo más general endeparse(substitute(x)) ylapply También me gustaría saber.

EDITAR: El problema, a diferencia de usar una función anónima que acepta múltiples argumentos y, por lo tanto, puede usar el nombre del objeto y el objeto en sí no funciona porque, eltf La función solo aceptará un argumento. Asi queesta no funciona aqui ...

Respuestas a la pregunta(1)

Su respuesta a la pregunta