J'utilise rep
et expand.grid
avec lists
mais le résultat n'est pas celui que j'attendais. La documentation n'est pas claire sur la façon dont expand.grid
travaille avec lists
. Quelqu'un pourrait-il expliquer comment ces deux fonctions fonctionnent ensemble ?
rep
réplique les éléments d'un vecteur x
x <- c(0, 1)
rep(x, 2)
# 0 1 0 1
pour qu'il réplique les éléments du vecteur/de la liste.
Cependant, quand je l'exécute comme ceci :
rep(list(x),2)
#[[1]]
#[1] 0 1
#
#[[2]]
#[1] 0 1
Pourquoi y a-t-il deux éléments répétés dans deux entrées différentes de la liste ? Je m'attendais à ce que cela donne un list
avec 1 élément contenant 0 1 0 1
.
De même, l'utilisation de expand.grid
sur le vecteur 0 1 0 1
donne :
expand.grid(c(0, 1, 0, 1))
# Var 1
#1 0
#2 1
#3 0
#4 1
Cependant, l'utilisation de expand.grid
sur la liste ci-dessus donne :
expand.grid(rep(list(x), 2))
# Var1 Var2
#1 0 0
#2 1 0
#3 0 1
#4 1 1
Comment cela fonctionne-t-il ?