2013-01-20 20 views
5

ile birleştirin. list(c(x1,x2),y,c(z1,z2)) formunun bir listesi var.Liste öğelerini R

A = list(c(1,4),2,3,c(1,4)) 

İsterdim: Verilen

[1] x1 y z1 

[2] x1 y z2 

[3] x2 y z1 

[4] x2 y z2 

Somut bir örnek vermek gerekirse,: ben formunun bir matris üretmek için listenin her elemanın alt unsurları birleştirmek istiyorum

t(matrix(c(c(1,2,3,1),1:4,c(4,2,3,1),c(4,2,3,4)),ncol=4)) 

cevap

11

kullanın expand.grid: a alıp bu komut üretecektir ne aynı görünen bir çıktı üretecektir bir işlev 012.304

expand.grid(A) 
# Var1 Var2 Var3 Var4 
# 1 1 2 3 1 
# 2 4 2 3 1 
# 3 1 2 3 4 
# 4 4 2 3 4 
ve sipariş gerçekten önemli, sen böyle bir şey yapabilirsiniz:

rev(expand.grid(rev(A))) 
# Var4 Var3 Var2 Var1 
# 1 1 2 3 1 
# 2 1 2 3 4 
# 3 4 2 3 1 
# 4 4 2 3 4 

ve muhtemelen sütunları yeniden adlandırın.

+0

Tam olarak aradığım şey buydu. Çok teşekkürler! – user1643809

İlgili konular