Почему я не могу назвать векторные элементы внутри c () тегами, индексированными из другой переменной? - PullRequest
0 голосов
/ 19 февраля 2019

Когда я называю элементы вектора, я использую пары тег - значение, как эти:

myvec <- c("name1" = 1, "name2" = 2, "name3" = 3)

> myvec
name1 name2 name3 
    1     2     3 

Когда я создаю вектор, содержащий имена, и индексирую этот вектор внутри функции c (),это не работает

namevec <- c("name1", "name2", "name3")

myvec <- c(namevec[1] = 1, namevec[2] = 2, namevec[3] = 3)
Error: unexpected '=' in "myvec <- c(namevec[1] ="

Мой вопрос сейчас: почему это так?Почему это работает, если я пишу "name1", но если я использую namevec[1], который возвращает "name1", он выдает ошибку?

Примечание: я не прошу обходной путь. Есть много таких, как:

"names<-"(c(1,2,3), namevec)
name1 name2 name3 
    1     2     3

setNames(c(1,2,3), namevec)
name1 name2 name3 
    1     2     3

structure(c(1,2,3), .Names = namevec)
name1 name2 name3 
    1     2     3 

и некоторые другие.

Я был вдохновлен этим вопросом отнесколько дней назад:

Именование элемента в rbind / list путем ссылки на элемент из символьного вектора в R

...