Ciclo de um vetor a partir de restrição dada

Segue abaixo uma possível solução: f <- Vectorize(function(x, i) { x <- x + i p1 <- x %/% 10 p2 <- x %% 10 p1 + p2 }, 'i') vi <- c(1,2,5,6) f(vi, 1:9) Att, Rubem ________________________________ De: "andrebvs@bol.com.br" <andrebvs@bol.com.br> Para: "r-br@listas.c3sl.ufpr.br" <r-br@listas.c3sl.ufpr.br> Enviadas: Sábado, 2 de Agosto de 2014 18:03 Assunto: [R-br] Ciclo de um vetor a partir de restrição dada Olá colegas, Gostaria de saber como fazer uma função no R, de modo que, quando eu some o valor 1 a um dado vetor inicial, o vetor seguinte seja um vetor resultante da soma do vetor inicial + 1, porém, com a restrição de que: se o último valor desse vetor resultante for igual ou superior ao valor 10, que este retorne para o valor inicial do vetor. Como exemplo, a idéia é: # Vetor Inicial: vi <- c(1,2,5,6) # Vetores resultates: 2,3,6,7 (somando + 1 ao vetor inicial) 3,4,7,8 (somando + 1 ao vetor anterior) 4,5,8,9 (somando + 1 ao vetor anterior) 5,6,9,1 (somando + 1 ao vetor anterior, neste caso, como iria ser 10 o último valor, volta-se para o valor inicial de vi, e assim por diante) 6,7,1,2 7,8,2,3 8,9,3,4 9,1,4,5 1,2,5,6 # observe aqui, que voltei ao vetor inicial, dando a idéia de um ciclo. Então, como faço uma função no R, de forma que eu tenha todos os vetores resultantes a partir de um vetor inicial dado? desde já agradeço! Att. André _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.

André, boa tarde! Não sei se já conseguiu resolver... mas segue mais uma ideia! ###<code r> f <- function(vec, iter, lim) { # (vec)tor, (iter)ações e (lim)ite superior print(vec) for (i in 1:iter) { vec = vec+1 over = which(vec>=lim) vec[over] <- vec[over]-lim print(vec)}} x1 <- c(1,2,5,6) x2 <- c(0,1,5,6,9,12,15,16,18,19) f(x1, 10, 10) f(x1, 12, 8) f(x2, 20, 20) ###</code> Éder Comunello <c <comunello.eder@gmail.com>omunello.eder@gmail.com> Dourados, MS - [22 16.5'S, 54 49'W]
participantes (3)
-
andrebvs@bol.com.br
-
Rubem Kaipper Ceratti
-
Éder Comunello