2016-10-20 5 views
0

I einen Vektor haben, wie untenSequenz hinzufügen zu jedem Element eines Vektors

x <- c(1,32,60,86,115,142,171,198) 

angegeben Ich möchte eine Sequenz wie seq (x [i], x erzeugen [i] + 2, = 1) für jedes Element des Vektors. Der resultierende Vektor sollte

1,2,3,32,33,34,60,61,62,86,87,88 .....

sein Ich frage mich, ob es eine Funktion ähnlich ist zu rep das tun? Schätzen Sie Ihren Beitrag dazu.

Antwort

1

können Sie saaply Schleife verwenden, um über jedes Element x und erzeugen eine seq uss von Zahlen und kombinieren sie mit c

c(sapply(x, function(x) seq(x, x+2))) 

# [1] 1 2 3 32 33 34 60 61 62 86 87 88 115 116 117 142 143 144 171 172 173 
#  198 199 200 
6

Wir können die vektorisiert verwenden rep

rep(x, each = 3) + 0:2 
#[1] 1 2 3 32 33 34 60 61 62 86 87 88 115 116 117 142 143 
#[18] 144 171 172 173 198 199 200 
Verwandte Themen