Я пытаюсь многократно вызывать функцию (в частности, Seurat :: DimPlot), где одним из аргументов является именованный список (cell.highlight). Я планирую использовать purrr::imap
для совершения звонка. У меня есть именованный список, где каждый элемент списка представляет собой вектор символов. Я хотел бы создать список для аргумента cell.highlight Seurat :: DimPlot. Когда я пытался
imap(mylist, ~ DimPlot(seurat_obj, cells.highlight=list(.y=.x), cols="lightgrey",
cols.highlight="dodgerblue") )
График выглядит хорошо, но вместо замены переменной .y на имя элемента списка, он оставляет имя элемента списка как ".y". (Так что на сюжете я вижу ".y" в легенде). Сделать SSCE
dp <- function(name, values){
list(name = values)
}
dp("a",paste0("a",1:3))
# $name
# [1] "a1" "a2" "a3"
где я хочу, чтобы это было
$a
[1] "a1" "a2" "a3"`
Я пытался использовать enquo, as_name, используя ': =', ensym, quote, но я просто не могу понять, как это правильно. Я знаю, что вы можете разбить это на две строки с помощью чего-то вроде list [[name]] = ..., но, поскольку это является частью более крупной проблемы, я хотел бы узнать, как правильно заключать в кавычки и заключать в кавычки имя переменной.
У меня всегда были проблемы с использованием NSE, даже после того, как я прочитал, перечитал и перечитал главу Advanced-R Хэдли Уикхемса о квази-цитатах и его главу об оценке, но кажется, что все части есть, я просто не могу собрать их вместе