Как извлечь ссылочное имя объекта - PullRequest
0 голосов
/ 01 апреля 2020

Этот вопрос кажется самым базовым c, но я просмотрел Inte rnet и не нашел ответов.

Моя цель - создать функцию, которая извлекает либо из вектора, либо метка из ее атрибутов (если она присутствует) или ее прямое / ссылочное имя (именно то, которое использовалось в коде).

Вот код на данный момент:

spss_label  <- function(x) {if (is.null(attr(x, which = "label")) == F) {y <- attr(x, which = "label", exact = TRUE)}
       else  {y <- names(data.frame(x))}
      y }  

Теперь допустим, что у меня есть вектор «Дабу» с надписью «Цуг Цуг». Когда я набираю:

label(Dabu)

Он правильно выдает

[1] "Zug Zug"

Первая часть работает. Но когда у меня есть вектор без каких-либо атрибутов, скажем, «космос», это то, чем я заканчиваю

> spss_label(cosmos)
[1] "x"

То есть, когда у меня есть вектор с пустыми атрибутами, результирующий вывод будет x или, чтобы уточните c, имя, которое я дал аргументу. Часть names (data.frame ()) была идеей, чтобы обойти проблему, но функция автоматически меняет ссылочное имя на имя аргумента.

Заранее благодарю за любую помощь!

...