2010-10-19 10 views
35

इसी तरह के सवाल में एक स्ट्रिंग में संग्रहित है अन्य भाषाओं के लिए उठाया है: C, sql, java, आदि लेकिन मैं आरपहुँच चर मूल्य जहां वैरिएबल का नाम आर

में यह करने के लिए

मैं कोशिश कर रहा हूँ

ret_series <- c(1, 2, 3); 
x <- "ret_series"; 

मैं कैसे x पर कुछ समारोह/हेरफेर फोन करके (1, 2, 3) मिलता है, ret_series के प्रत्यक्ष उल्लेख किए बिना है?

+0

यह भी देखें: http://stackoverflow.com/questions/2948367/pass-variable-name-to-a-function-in-r –

+0

एफडब्ल्यूआईडब्ल्यू, प्रत्येक कथन के अंत में अर्धविराम आवश्यक नहीं है। –

उत्तर

49

आपने अपने प्रश्न में उत्तर प्रदान किया है। get आज़माएं।

> get(x) 
[1] 1 2 3 
13

एक ऑफ ऑफ़ उपयोग के लिए, फ़ंक्शन फ़ंक्शन काम करता है (जैसा कि उल्लेख किया गया है), लेकिन यह बड़ी परियोजनाओं के लिए अच्छी तरह से स्केल नहीं करता है। यह आप सूची या वातावरण में डाटा स्टोर करने के लिए बेहतर है, तो का उपयोग [[अलग-अलग तत्वों का उपयोग करने की:

mydata <- list(ret_series=c(1,2,3)) 
x <- 'ret_series' 

mydata[[x]] 
3

क्या निम्नलिखित में से किसी के साथ गलत क्या है?

eval(as.name(x)) 

eval(as.symbol(x)) 
+0

कंसोल से कोड चिपकाते समय सावधान रहें। StackOverflow उद्धरण के रूप में ">" व्याख्या करता है। कोड प्रारूपित करने के लिए 0101010 प्रतीक का प्रयोग करें। और एसओ पर आपका स्वागत है;) – Marek

1

ध्यान दें कि उपरोक्त कुछ उदाहरण data.frame के लिए काम नहीं करेंगे।

उदाहरण के लिए

, यह देखते हुए

x <- data.frame(a=seq(1,5))

get("x$a") आप x$a देना नहीं होता।

+2

'प्राप्त करें ("x") $ a' काम करेगा। –

संबंधित मुद्दे