2010-10-22 25 views
1

(s'il vous plaît ignorer cette question - il est fou ...)Existe-t-il une version de? Rep qui reçoit "each" comme vecteur? (Question R)

Je veux quelque chose qui va faire:

rep(1:3, each = 1:3) 
# And will output this vector: 
c(1,2,2,3,3,3) 

Existe t-il? (Et si oui, comment)

Mise à jour: Je peux écrire comme ça -

rep2 <- function(x, each) 
{ 
    output <- NULL 
    for(i in 1:length(x)) 
    { 
     output <- c(output, rep(x[i], each = each[i])) 
    } 
    return(output) 
} 
# example: 
rep2(1:3,1:3) 

, mais je suis l'espoir d'une solution plus intelligente ...

+1

Il est Tal d'accord, nous avons tous nos moments ... ;-) Merci –

+0

Joshua, Je vous remercie de la gentillesse :) –

Répondre

2
rep(1:3,1:3) 

Sûrement cela fonctionne comme votre exemple. Pour info, l'argument pour la fonction rep est times, each est un entier unique (ou le premier élément d'un vecteur) qui détermine la répétition de tous les éléments de x.

+0

- merci ... –

1

Hummm ceci:

> rep(1:3, 1:3) 
[1] 1 2 2 3 3 3 

Vous voulez l'argument 'times =', pas 'each ='.

+0

- merci ... –