आर

2011-04-27 20 views
25

में पूर्णांक वैक्टर की सूची कैसे बनाएं मूल प्रश्न: आर में, मैं एक सूची कैसे बना सकता हूं और बाद में वेक्टर तत्वों के साथ पॉप्युलेट कर सकता हूं?आर

l <- list() 
l[1] <- c(1,2,3) 

यह त्रुटि देता है तो आर वेक्टर अनपैक करने के लिए कोशिश कर रहा है, "आइटम को बदलने के लिए की संख्या प्रतिस्थापन लंबाई की एक बहु नहीं है।" सूची बनाने के दौरान अब तक वेक्टरों को जोड़ने का एकमात्र तरीका है।

l <- list(c(1,2,3), c(4,5,6)) 

उत्तर

31

?"[" के अनुसार कुछ का उपयोग करें (अनुभाग "पुनरावर्ती (सूची की तरह) वस्तुओं" के अंतर्गत):

Indexing by ‘[’ is similar to atomic vectors and selects a list of 
the specified element(s). 

Both ‘[[’ and ‘$’ select a single element of the list. The main 
difference is that ‘$’ does not allow computed indices, whereas 
‘[[’ does. ‘x$name’ is equivalent to ‘x[["name", exact = 
FALSE]]’. Also, the partial matching behavior of ‘[[’ can be 
controlled using the ‘exact’ argument. 

मूल रूप से, सूचियों के लिए, [ एक से अधिक तत्व का चयन करता है, तो प्रतिस्थापन (अपने उदाहरण के रूप में एक सदिश नहीं) सूची होनी चाहिए। यहाँ कैसे सूचियों पर [ उपयोग करने के लिए की एक उदाहरण है:

l <- list(c(1,2,3), c(4,5,6)) 
l[1] <- list(1:2) 
l[1:2] <- list(1:3,4:5) 

आप केवल एक तत्व की जगह के बजाय [[ उपयोग करना चाहते हैं।

l[[1]] <- 1:3 
25

उपयोग [[1]]

l[[1]] <- c(1,2,3) 
l[[2]] <- 1:4 

और इतने में के रूप में। इसके अलावा याद करते हैं कि preallocation बहुत अधिक कुशल है, इसलिए यदि आप जानते हैं कि कब तक अपनी सूची होने जा रहा है, जैसे

l <- vector(mode="list", length=N)