वे तारों की तरह नहीं दिखते हैं; यह कार्यों की एक सूची की तरह दिखता है। अपने शीर्षक में दिए गए प्रश्न का उत्तर देने के लिए, get()
देखें। उदाहरण के लिए, अपनी सूची का उपयोग कर के लिए, लेकिन चरित्र तार के रूप में जमा:
funcList <- list("*", "sin")
हम get()
उपयोग कर सकते हैं सूची के चयनित तत्व द्वारा दिए गए नाम के साथ समारोह वापस जाने के लिए:
> f <- get(funcList[[1]])
> f
function (e1, e2) .Primitive("*")
> f(3,4)
[1] 12
एक वैकल्पिक match.fun()
है समारोह है, जो दिए गए एक स्ट्रिंग है स्ट्रिंग नाम मिलान के साथ एक समारोह मिलेगा:
> f2 <- match.fun(funcList[[1]])
> f2(3,4)
[1] 12
लेकिन जैसा कि ?match.fun
हमें बताता है, हम शायद उस पर ऐसा नहीं कर रहे हैं, लेकिन एक समारोह के भीतर से।
आप कार्यों की एक सूची है, तो एक बस सूची में सूचकांक और यह एक समारोह के रूप में उपयोग कर सकते हैं:
> funcList2 <- list(`*`, sin)
> str(funcList2)
List of 2
$ :function (e1, e2)
$ :function (x)
> funcList2[[1]](3, 4)
[1] 12
> funcList2[[2]](1.2)
[1] 0.9320391
या आप अंतरिम वस्तुओं के रूप में कार्य को बचा सकता है, लेकिन वहाँ थोड़ा है ऐसा करने में बिंदु:
> f3 <- funcList2[[1]]
> f3(3,4)
[1] 12
> f4 <- funcList2[[2]]
> f4(1.2)
[1] 0.9320391
स्रोत
2011-06-19 18:04:51
आपका उदाहरण मीटर के लिए काम करता इस्तेमाल कर सकते हैं ई और आपकी सूची के तत्व पात्र नहीं हैं, वे कार्य हैं। उत्तर के लिए –