2012-05-03 3 views
13

я пишу этот код в Rкак получить значение, когда имя переменной передается в виде строки

paste("a","b","c") 

, которая возвращает значение "abc"

Переменная abc имеет значение 5 (например), как сделать я получаю "abc", чтобы дать мне значение 5, есть ли какая-либо функция, например as.value(paste("a","b","c")), которая даст мне ответ 5? Я делаю свое сомнение простым, и это именно то, что я хочу. Пожалуйста, помогите мне. Заранее спасибо

+3

[FAQ 7.21] (http://cran.r-project.org/doc/FAQ/R-FAQ.html#How-can-I-turn-a-string-into-a-variable_003f) –

ответ

27

paste("a","b","c") дает "a b c" не "abc"

Во всяком случае, я думаю, что вы ищете get():

> abc <- 5 
> get("abc") 
[1] 5 
+0

So как вы делаете обратное? Как-то (5) «abc» – Bharath

6

Дополнение к ответу Sacha в. Если вы хотите присвоить значение объекта «ABC» с помощью paste():

assign(paste("a", "b", "c", sep = ""), 5) 
+6

Вы также можете использовать новый 'paste0 (...)', который является коротким для 'paste (..., sep =" ")' –

6

Это, безусловно, один из самых задаваемых вопросов о языке R, вместе со своим злым братом-близнецом «Как превратить x='myfunc' в исполняемую функцию? " Таким образом, get, parse, eval, expression - все, что нужно знать. Наиболее полезным (IMHO) и наименее известным является do.call, который заботится о большом количестве операций преобразования строк в объект для вас.

+0

Возможно, это, но эти вещи не кажутся, когда вы начинаете использовать R. Трудно также читать faq, если вы не привыкли к используемому им языку (по крайней мере, для не-носителей) – Mikko

+0

@ Largh, вот что «R-Inferno "для ~ _ * –

Смежные вопросы