Когда я называю элементы вектора, я использую пары тег - значение, как эти:
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