Je souhaite accomplir la tâche suivante sans avoir à entrer une boucle for
, mais plutôt dans une seule commande apply()
.Coller une liste dans un vecteur, répéter la liste pour chaque niveau de vecteur
J'ai une liste a
que je veux répéter N
fois, où N
est la longueur du vecteur b
, coller chaque répétition de a
à un élément de b
.
Jusqu'à présent, je l'ai fait la MWF suivante:
var <- paste("var", 1:4, sep="")
treat <- c("A","B")
spec <- paste("sp", 1:3, sep="")
a <- combn(var, 2, simplify = FALSE)#this 6 times, for each treatment and species
b <- do.call(paste, c(expand.grid(treat, spec), sep='.'))
a1 <- lapply(a, paste, b[1], sep='.')
a2 <- lapply(a, paste, b[2], sep='.')
a3 <- lapply(a, paste, b[3], sep='.')
a4 <- lapply(a, paste, b[4], sep='.')
a5 <- lapply(a, paste, b[5], sep='.')
a6 <- lapply(a, paste, b[6], sep='.')
a.final <- c(a1,a2,a3,a4,a5,a6)
a.final
Il serait optimal si je pouvais coller b
avant a
.
Notez que mes points de départ sont 3 vecteurs: var
, treat
et spec
, alors n'hésitez pas à changer quoi que ce soit à partir de ce point.
Ca y est! Merci beaucoup – DaniCee