[R-es] Uso reiterado de la funcion seq

Carlos Ortega cof en qualityexcellence.es
Mie Abr 12 01:11:08 CEST 2017


Hola,

Esta es una forma de hacerlo con la librería "purrr":

#-----------------------
> library(purrr)
> x <- list(20, 25, 35)
> p <- list(2, 3, 5)
> res_out <- unlist(seq_along(x) %>%
+      map( ~seq(x[[.]], length.out = p[[.]], by=1) ))
> res_out
 [1] 20 21 25 26 27 35 36 37 38 39
#-----------------------

Saludos,
Carlos Ortega
www.qualityexcellence.es


El 11 de abril de 2017, 22:13, Francisco Javier <iterador10 en hotmail.com>
escribió:

> Hola a todos,
>
> Escribo debido a una duda en la aplicacion de la funcion seq en cada uno
> de los "n" componentes de un vector "x". Hasta donde yo se, dicha funcion
> no permite el uso de vectores.
> En consecuencia, y como primera aproximacion a lo que deseo
> hacer, he construido un bucle  que retorne una lista de "n" vectores (de
> distinta longitud), donde cada uno de estos
> vectores resulta de aplicar la funtion seq a los respectivos elementos del
> vector "x" de la siguiente manera:
>
> # Por ejemplo, sea n = 3 con los siguientes valores iniciales:
> x <- c(20, 25, 35)
> p <- c(2, 3, 5)
>
> v <- vector('list', n)              # Lista vacia en donde ubicar los "n"
> vectores
> for (i in 1:n) {
>    v[[i]] <- seq(x[i], len = p[i])
> }
>
> # Posteriormente, ubico todos los vectores en un unico vector, por ejemplo
> con unlist: res <- unlist(v)
> 20 21 25 26 27 35 36 37 38 39
>
> Sin embargo, el anterior bucle no es eficiente si "n" es muy grande , por
> lo que me pregunto si existe una forma mejor de hacerlo (quizas con lapply).
> Muchas gracias.
>
> F. Javier
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>



-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es