Как я могу вернуть исходные названия объектов в списке? - PullRequest
2 голосов
/ 14 июля 2020

Я создал именованный список ранее сгенерированных графиков и матриц и хотел бы вернуть исходные имена этих элементов.

mylist <- list(FirstPlot=myplot1, FirstMatrix=mymatrix1, SecondPlot=myplot2)

names(mylist) возвращает [1] "FirstPlot" "FirstMatrix" "SecondPlot"

но я хочу вернуть [1] "myplot1" "mymatrix1" "myplot2"

Я чувствую, что должен быть простой способ сделать это, но я не могу его найти. Есть предложения?

1 Ответ

2 голосов
/ 14 июля 2020

Если у вас не изменено содержимое list, а также не оригиналы, вы можете попытаться найти оригинальные имена по его адресу.

df1 <- data.frame(1:5)
df2 <- data.frame(2:7)
df3 <- data.frame(8:11)

mylist <- list(FirstPlot=df1, FirstMatrix=df2, SecondPlot=df3)

x <- sapply(ls(), function(x) tracemem(get(x)))
y <- sapply(mylist, tracemem)
cbind(names(y), names(x)[match(y, x)])
#     [,1]          [,2] 
#[1,] "FirstPlot"   "df1"
#[2,] "FirstMatrix" "df2"
#[3,] "SecondPlot"  "df3"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...