Saturday 15 March 2014

Apply a function to all variables starting with specific pattern in R -


मुझे चर के साथ एक आर वर्कस्पेस मिला है test1 , test2 , test3 , test4 , .. testn । ये चर समान लंबाई की सभी सूचियां हैं मैं mapply () का उपयोग कर इन सूचियों को निम्न उदाहरण के रूप में जोड़ना चाहूंगा:

  test_matrix = mapply (c, test1, test2, testn) < / Code>  

मैं यह कैसे कर सकता हूँ सभी चर के लिए जो कि "test" से शुरू होता है, और इसे क्रम में test1 , test2 करता है , .. testn ?

बिल्कुल जवाब देने के लिए ओपी ने ( mapply (c, test1, test2, testn) ) के लिए पूछा: do:

  do.call (mapply, c (FUN = c, mget) (पेस्ट 0 ("परीक्षा", 1: n))))   

अगर आपको पता नहीं है कि आपके पास कितने ( n ) सूचियां हैं और एक पैटर्न का उपयोग करके उन्हें ढूंढना चाहते हैं:

  do.call (mapply, c (FUN = c, mget (ls (पैटर्न = "^ test \\ d + $"))))   

अब तक अन्य उत्तर की तरह, ls का उपयोग करके यह विधि ठीक से ऑब्जेक्ट को सॉर्ट नहीं करेगी, अगर उनमें से नौ से ज्यादा हैं क्योंकि उन्हें वर्णानुक्रम में सॉर्ट किया गया है लंबे समय तक लेकिन पूरी तरह से मजबूत संस्करण होगा:

  test.lists & lt; - ls (पैटर्न = "^ test \\ d + $") आदेश दिया। सूची & lt; - test.lists [आदेश ( As.integer (उप ("परीक्षा", "", test.lists)))] do.call (mapply, c (FUN = c, mget (क्रमबद्ध.सूची)))    

No comments:

Post a Comment