Repetarea recurentă a elementelor vectorului de N ori fiecare [duplicat] (Programare, R)

Patrick a intrebat.

Vreau să repet un vector de N ori, dar element cu element, nu tot vectorul.

De exemplu, am:

v <- c('a', 'b')

Să zicem că vreau să repet de n ori:

n <- 3

Vreau:

vfill <- c(rep(v[1], n), rep(v[2], n))
print(vfill)
[1] "a" "a" "a" "b" "b" "b"

Cea mai bună soluție a mea de până acum:

ffillv <- function(i) rep(v[i], n)
c(sapply(seq_len(length(v)), ffillv))

Mă interesează soluțiile rapide & soluții scalabile, de exemplu, folosind rbind, plyr, etc.

Comentarii

  • De ce nu rep(v, each = 3)? Puteți clarifica ce încercați să faceți? –  > Por A5C1D2H2H2I1M1N2O1R2T1.
  • @AnandaMahto Exact ceea ce căutam. Am de optimizat o funcție obiectiv oarecum complexă, construită pe date „zdrențuite”. Folosesc filozofia plyr split-apply-combine. În procesul de analiză, am vrut să accesez niște date intermediare de nivel scăzut și să le combin într-un data.frame. Am învățat o modalitate de a combina așa cum am dorit folosind ldply, dar acea modalitate specifică a necesitat tipul de extindere despre care am întrebat. În ceea ce vă privește, este posibil ca modul în care o fac eu să nu fie optim! S-ar putea să am alte întrebări în viitorul apropiat în acest sens. Vă mulțumesc. –  > Por Patrick.
1 răspunsuri
larrydag
rep(v, each=3)

sau

rep(v, each=n)

unde aveți n definit

Tags: