J'ai une table d'événements avec une indication quand ils se produisent. Ils sont déjà commandés par le temps.
earlier later sow water sow harvest water harvest
3 Réponses :
Après avoir pensé, j'ai réalisé que cela est relativement facile à mettre en œuvre lors de l'utilisation d'expand.Grid en chiffres.
Je suis arrivé à une conclusion similaire à l'aide de Lapply CODE>
df <- lapply(1:nrow(events), function(x) {
expand.grid(events$name[x], events$name[(x+1):nrow(events)])})
do.call(rbind, df[-nrow(events)])
#> Var1 Var2
#> 1 sow water
#> 2 sow harvest
#> 3 water harvest
En supposant que votre colonne soit déjà dans la commande souhaitée, vous pouvez utiliser la fonction COMMAN code> et transposer:
Si les événements sont à l'ordre du temps, pouvez-vous faire:
T (COMBN (Events $ Nom, 2)) CODE>?
@Ben Oui, ils sont commandés, ou du moins facilement commandables depuis que j'ai la colonne. Quelle est la fonction t? Je ne me souviens pas de l'avoir vu auparavant, et la recherche de
r t code> ne retourne pas beaucoup de choses pertinentes.
@Ben ah, je vois ça, merci. Et est
COMMUT CODE> GARANTI de retourner toujours des combinaisons de telle sorte que l'élément avec le "nombre plus petit" soit répertorié d'abord ou est-ce qu'un détail de mise en œuvre pouvant changer théoriquement entre les versions? Je ne vois pas la commande mentionnée dans le fichier d'aide (que j'ai ouverte dans la console cette fois :))
@Ben je serais heureux de le voir comme une réponse. L'inconvénient de l'ordre changeant un jour est purement théorique et il est beaucoup plus concis que les réponses existantes.
Est-ce que cela répond à votre question? Comment générer toutes les combinaisons possibles des vecteurs sans s'occuper de la commande?
@Josephwood non, c'est un problème totalement différent de résoudre ce problème dans cette autre question.