депарсировать (заменить (х)) в восторге?
Я хотел бы использовать функцию, которая использует стандарт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
Функция будет принимать только один аргумент. Такэто здесь не работает ...