2013-01-15 19 views
5

मैं दो सूचियों (ए और बी) को गठबंधन करने के लिए मैप्ली का उपयोग करने की कोशिश कर रहा हूं। प्रत्येक तत्व एक डेटा फ्रेम है। मैं निम्नलिखित रिटर्न बी में इसी dataframes मैं combo1 में चाहते हैं क्या करने के लिए एक में dataframes rbind कोशिश कर रहा हूँ:मैप्ली और दो सूचियां

num = 10 
A<-list() 
B<-list() 
for (j in 1:num){ 
    A[[j]] <- as.data.frame(matrix(seq(1:9),3,3)) 
    B[[j]] <- as.data.frame(matrix(seq(10:18),3,3)) 
} 

combo1<-list() 
for (i in 1:num){ 
    combo1[[i]] <-rbind(A[[i]], B[[i]]) 
} 
मैं mapply उपयोग करने के लिए भी ऐसा ही करने की कोशिश कर रहा हूँ

, लेकिन मैं यह कर सकते हैं 'टी यह काम करने के लिए मिलता है:

combo2<-list() 
combo2<-mapply("rbind", A, B) 

मुझे उम्मीद थी किसी ने मुझे मदद

+0

ए और बी के विनिर्देशन में 'seq' का उपयोग समस्याग्रस्त भी हो सकता है। पहले मामले में यह अनिवार्य है, और दूसरे में ऐसा लगता है कि यह भ्रामक परिणाम देगा। वेक्टर इनपुट के लिए, 'seq_along' का उपयोग किया जाता है। – James

उत्तर

9

कृपया सकता है आप बहुत करीब थे!

## Make this a more _minimal_ reproducible example 
A <- A[1:2] 
B <- B[1:2] 

## Override default attempt to reduce results to a vector, matrix, or other array 
mapply("rbind", A, B, SIMPLIFY=FALSE) 
# [[1]] 
# V1 V2 V3 
# 1 1 4 7 
# 2 2 5 8 
# 3 3 6 9 
# 4 1 4 7 
# 5 2 5 8 
# 6 3 6 9 
# 
# [[2]] 
# V1 V2 V3 
# 1 1 4 7 
# 2 2 5 8 
# 3 3 6 9 
# 4 1 4 7 
# 5 2 5 8 
# 6 3 6 9 
+0

क्या फ़ंक्शन को सीधे लिखने के बजाय फ़ंक्शन नाम उद्धृत करने का कोई कारण है? यानी 'mapply (rbind, ए, बी, सरल = गलत) ' – Justin

+1

@ जस्टिन - मुझे नहीं पता कि। (वे दोनों काम करते हैं, क्योंकि उस पहले तर्क को 'match.fun()' द्वारा संसाधित किया जाता है।) –

+1

या 'मानचित्र (आरबीआईंड, ए, बी) ' – hadley

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