депарсировать (заменить (х)) в восторге?

Я хотел бы использовать функцию, которая использует стандартdeparse(substitute(x)) трюк вlapply, К сожалению, я просто вернул аргумент цикла. Вот мой совершенно бесполезный воспроизводимый пример:

# 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"

это нормально. Если я используюlapply Я либо получаю[[1L]] илиx аргумент анонимной функции.

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


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

Есть ли способ получить следующее?

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


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

Если есть что-то более общее наdeparse(substitute(x)) а такжеlapply Я также хотел бы знать.

РЕДАКТИРОВАТЬ: Проблема в отличие от использования анонимной функции, которая принимает несколько аргументов и, таким образом, может использовать имя объекта, а сам объект не работает, потому что,tf Функция будет принимать только один аргумент. Такэто здесь не работает ...

Ответы на вопрос(1)

Ваш ответ на вопрос