2012-05-03 26 views
13

i değerini "abc"değişken adı

Değişken abc döndürür

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

(diyelim ki) 5 bir değere sahiptir Ar bu kod yazmak bir dize olarak geçirildiğinde nasıl değerini almak nasıl Ben 5 değerini vermek için "abc" olsun 5 cevap verecek as.value(paste("a","b","c")) gibi herhangi bir işlevi var mı? Şüphe duyma sesimi basitleştiriyorum ve bu tam da istediğim şey. Lütfen bana yardım edin. peşin

+3

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

cevap

27

paste("a","b","c") teşekkürler Neyse "a b c" değil "abc"

verir, sana get() aradığınız düşünüyorum:

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

nasıl tersi yapıyorsun? Gibi bir şey (5) "abc" – Bharath

6

Sacha'nın cevabı eklenmesi. Bu onun kötü ikiz kardeşi "ile birlikte kesinlikle R dili hakkında en çok sorulan sorulardan biridir

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

Ayrıca "paste0 (...)" için kısa olan "paste (..., sep =" ")' –

6

nasıl x='myfunc' açabilirim: Eğer bir nesne "abc" paste() kullanarak bir değer atamak isterseniz yürütülebilir bir işleve? " Özet olarak, get, parse, eval, expression hakkında daha fazla bilgi edinmek için iyi birşeyler vardır. En kullanışlı (IMHO) ve en az bilinen, do.call, sizin için bir çok nesne-nesne dönüştürme işini hallediyor.

+0

için de kullanabilirsiniz. R kullanmaya başladığınızda şeyler belirgin değil. Faq'leri okumak çok zor, eğer orada kullandıkları dilde kullanılmıyorsanız (en azından yerli olmayanlar için) – Mikko

+0

@ Largh, "R-Inferno" "~ için * –

İlgili konular