Cette ancienne question a déjà une réponse acceptée. Mais comme elle est utilisée comme cible de doublon, je pense qu'il est utile d'ajouter une réponse à cette question. data.table
qui utilise le joint croisé función CJ()
:
library(data.table)
options(datatable.CJ.names=FALSE) # required with version version 1.12.0+
CJ(vars, vis)[, paste(V1, V2, sep =".")]
#[1] "PL.1" "PL.2" "PL.3" "SR.1" "SR.2" "SR.3"
Dans le cas où la commande originale est importante :
CJ(vars, vis, sorted = FALSE)[, paste(V1, V2, sep =".")]
#[1] "SR.1" "SR.2" "SR.3" "PL.1" "PL.2" "PL.3"
Edita: CJ()
a changé de comportement par défaut avec la version 1.12.0
Comme annoncé dans le notes de publication de la version 1.12.0 (Point 3) l'option par défaut options(datatable.CJ.names=TRUE)
a changé. CJ()
nomme maintenant automatiquement ses entrées exactement as data.table()
fait.
Ainsi, le code ci-dessus doit être modifié pour data.table
version 1.12.0 et supérieure :
library(data.table) ### version 1.12.0+
CJ(vars, vis)[, paste(vars, vis, sep =".")]
y
CJ(vars, vis, sorted = FALSE)[, paste(vars, vis, sep =".")]
resp.