आर में दो सूचियों को कैसे संयोजित करें


111

मेरी दो सूचियाँ हैं:

l1 = list(2, 3)
l2 = list(4)

मुझे तीसरी सूची चाहिए:

list(2, 3, 4).

मैं इसे सरल तरीके से कैसे कर सकता हूं। हालांकि मैं इसे लूप के लिए कर सकता हूं, लेकिन मैं एक लाइनर जवाब की उम्मीद कर रहा हूं, या शायद एक अंतर्निर्मित विधि।

दरअसल, मेरे पास एक सूची है:
list(list(2, 3), list(2, 4), list(3, 5), list(3, 7), list(5, 6), list(5, 7), list(6, 7)).
कंप्यूटिंग के बाद list(2, 3)और list(2, 4), मैं चाहता हूं list(2, 3, 4)


7
c(l1, l2)? यदि आप कुछ और उम्मीद करते हैं, तो क्या आप थोड़ा विस्तार कर सकते हैं और / या अपनी सूचियों और वांछित आउटपुट को साझा कर सकते हैं?
विन्सेन्ट बोनहोमे

यह उसी प्रारूप का है जैसा मैंने ऊपर दिया है।
रोहित सिंह

1
मेरे पास एक सूची है: सूची (सूची (2, 3), सूची (2, 4), सूची (3, 5), सूची (3, 7), सूची (5, 6), सूची (5, 7), सूची (६,))। सूची (2, 3) और सूची (2, 4) पर गणना करने के बाद, मुझे सूची (2, 3, 4) चाहिए। बस।
रोहित सिंह

1
@Vincent पहले यहाँ मिला। यह उसका जवाब है।
रिच स्क्रिप्न

2
अपने संपादित से: यदि आपके पास list(2, 3)और list(2, 4),और चाहते हैं list(2, 3, 4), तो आप भी कर सकते हैंunique(c(l1, l2))
user20650

जवाबों:


143

c सूचियों पर इस्तेमाल किया जा सकता है (और न केवल वैक्टर पर):

# you have
l1 = list(2, 3)
l2 = list(4)

# you want
list(2, 3, 4)
[[1]]
[1] 2

[[2]]
[1] 3

[[3]]
[1] 4

# you can do
c(l1, l2)
[[1]]
[1] 2

[[2]]
[1] 3

[[3]]
[1] 4

यदि आपके पास सूचियों की एक सूची है, तो आप इसे (शायद) अधिक आराम से कर सकते हैं do.call, जैसे:

do.call(c, list(l1, l2))

54

हम प्रयोग कर सकते हैं append

append(l1, l2)

इसमें किसी विशेष स्थान पर तत्व सम्मिलित करने के तर्क भी हैं।


@Zach pasteऔर paste0एक बड़ी स्ट्रिंग के साथ तार जुड़ने हैं। क्या आप इस समस्या का थोड़ा और वर्णन कर सकते हैं क्योंकि मैंने इसे स्पष्ट रूप से नहीं समझा?
अक्रुन

2
@akrun दो से अधिक सूचियों के लिए वाक्य रचना कैसे है?
फ्रोसी

3
@ फारसी आप कर सकते हैं c(l1, l2, l3), append()सिर्फ एक आवरण है, c()लेकिन केवल दो तर्क हैं।
sindri_baldur

0

मैं एक ही काम करना चाह रहा था, लेकिन सूची को सिर्फ एक सरणी के रूप में संरक्षित करने के लिए इसलिए मैंने एक नया कोड लिखा, जो कि मैं जो पढ़ रहा हूं वह सबसे अधिक कुशल नहीं हो सकता है, लेकिन मुझे जो करने की आवश्यकता है उसके लिए काम किया :

combineListsAsOne <-function(list1, list2){
  n <- c()
  for(x in list1){
    n<-c(n, x)
  }
  for(y in list2){
    n<-c(n, y)
  }
  return(n)
}

यह सिर्फ एक नई सूची बनाता है और एक बनाने के लिए दो आपूर्ति सूचियों से आइटम जोड़ता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.