2017-09-01 3 views
0

Je suis en train d'initialiser une trame de données en fonction de la taille et dimensionnalité définie par les indices vectoriels: par exemple -Initialiser une trame de données à partir d'une liste connue des dimensions définies par des vecteurs

ind1 <- c('red', 'blue') 
ind2 <- c('circle', 'square', 'triangle') 

myFun(ind1,ind2) # this is the great function that yields your result:

red circle 
red square 
red triangle 
blue circle 
blue square 
blue triangle 
+0

parfait, cela joue à merveille. Si vous en faites une réponse, je la marquerai correctement! – Sarobinson

+0

@Psidom faire comme une réponse mec :) – Wen

Répondre

1

Ce dont vous avez besoin est expand.gridcrée une trame de données à partir de toutes les combinaisons des vecteurs d'entrée:

expand.grid(ind1, ind2) 

# Var1  Var2 
#1 red circle 
#2 blue circle 
#3 red square 
#4 blue square 
#5 red triangle 
#6 blue triangle 

Aussi, si vous utilisez data.table vous pouvez utiliser Cross RejoignezCJ:

data.table::CJ(ind1, ind2) 

#  V1  V2 
#1: blue circle 
#2: blue square 
#3: blue triangle 
#4: red circle 
#5: red square 
#6: red triangle