2012-05-03 12 views
13

scrivo questo codice nella Rcome ottenere valore quando un nome di variabile viene passato come stringa

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

che restituisce il valore "abc"

variabile abc ha un valore di 5 (diciamo) come si fa ottengo "abc" per darmi il valore 5 c'è qualche funzione come as.value(paste("a","b","c")) che mi darà la risposta 5? Sto facendo sembrare il mio dubbio semplice e questo è esattamente ciò che voglio. Quindi, per favore aiutami Grazie in anticipo

+3

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

risposta

27

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

Comunque, credo che siete alla ricerca di get():

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

Quindi come fai il contrario? Come qualcosa (5) "abc" – Bharath

6

Un'aggiunta alla risposta di Sacha. Se si desidera assegnare un valore a un oggetto "abc" utilizzando paste():

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

Si potrebbe anche usare il nuovo 'paste0 (...)' che è l'abbreviazione di 'paste (..., sep =" ")' –

6

Questo è certamente una delle domande più-poste sulla lingua R, insieme con il suo fratello gemello cattivo "Come faccio a girare x='myfunc' in una funzione eseguibile? " In sintesi, get, parse, eval, expression sono tutte cose buone da conoscere. Il più utile (IMHO) e il meno noto è lo do.call, che si prende cura di molte delle operazioni di conversione da stringa a oggetto per te.

+0

Potrebbe essere questo, ma questi le cose non sono evidenti quando inizi a usare R. È difficile leggere anche le faq, se non sei abituato al linguaggio che usano lì (almeno per i non madrelingua) – Mikko

+0

@Largh, ecco cosa "The R-Inferno "è per ~ _ * –

Problemi correlati