2011-07-13 4 views
3

Je suis en train d'utiliser R pour effectuer une opération (idéalement avec la sortie de la même affichée) tels quePerform 'produit cartésien de deux vecteurs, mais avec addition

> x<-1:6 
> y<-1:6 
> x%o%y 
    [,1] [,2] [,3] [,4] [,5] [,6] 
[1,] 1 2 3 4 5 6 
[2,] 2 4 6 8 10 12 
[3,] 3 6 9 12 15 18 
[4,] 4 8 12 16 20 24 
[5,] 5 10 15 20 25 30 
[6,] 6 12 18 24 30 36 

où chaque entrée se trouve par addition non la multiplication .

Je serais également intéressé par la création des 36 couples (1,1), (1,2), etc ...

De plus, je veux utiliser un autre vecteur comme

z<-1:4 

pour créer tous les triplets ordonnés possibles entre x, y et z. J'utilise R pour examiner les probabilités d'un total possible lorsque je lance des dés avec des nombres variés de tailles.

Merci pour votre aide! Ce site m'a beaucoup aidé. J'apprécie toute personne qui prend le temps de répondre à une question d'un étranger.

MISE À JOUR Je trouve que `extérieur (x, y, '+') va faire ce que je voulais d'abord. Mais je ne sais toujours pas comment créer des paires ordonnées ou des triplets ordonnés.

Répondre

13

expand.grid peut répondre à votre deuxième question:

expand.grid(1:6,1:6) 
expand.grid(1:6,1:6,1:4) 
+0

Merci! C'est exactement ce que je veux. Mes étudiants seront heureux demain! – Michael

14

Votre première question est facilement manipulé par outer:

outer(1:6,1:6,"+") 

Pour les autres, je vous suggère d'essayer expand.grid, bien qu'il existe des fonctions de combinaison spécialisées et permutation là aussi bien si vous faites un peu de recherche.

+0

booo, vous avez modifié avant que les 5 premières minutes, il semble que je viens essuyai votre réponse ... ;-) –

+0

Joshua n'a pas balayez ma réponse! Merci pour l'aide! Connaissez-vous un bon endroit pour trouver des fonctions comme celles-ci? J'ai la carte de référence r, mais je ne pense pas que 'outer 'soit présent. – Michael

+0

@Josua - Désolé pour ça; Je connaissais le côté droit du haut de ma tête et je suis retourné pour voir s'il y avait quelque chose de mieux que 'expand.grid' ... Je ne devrais pas être si pressé pour rep! ;) – joran

Questions connexes