Создание переменных с идентификаторами из символьного вектора

#r #rlang

#r #rlang

Вопрос:

Создавать переменные легко:

 `a b` <- 1
`c d` <- 2
 

или альтернативно:

 `<-`("a b", 1)
`<-`("c d", 2)
 

Здесь у меня есть вектор имен переменных x <- c("a b", "c d") , но я пытаюсь присвоить 1 `a b` с помощью

 `<-`(x[1], 1)
 

но это переводится в x[1] <- 1 , а не `a b` <- 1 .

Я пытался

 `<-`(get(x[1]), 1)
 

и

 library(rlang)
`<-`(expr(!!x[1]), 1)
 

но ничего из этого не работает. Есть идеи?

Комментарии:

1. Не входите в привычку создавать символы, которые не являются допустимым синтаксисом.

2. Не могли бы вы, пожалуйста, уточнить, какие символы недействительны?

3. Все символы, которые необходимо заключить в кавычки, например, символы, содержащие пробел.

4. Да, символы с пробелами нестандартны, но я бы не сказал, что они недопустимы (иначе они не будут выполняться). Я использую это, чтобы заставить всплывающие подсказки my plotly работать должным образом.

Ответ №1:

Использование assign :

 assign(x[1], 1)
`a b`
#[1] 1