Albert Montolio
2015-Sep-15 15:42 UTC
[R-es] Fwd: problema en while y en extraer valores de un vector
Hola chicos,
muchas gracias, funcionan vuestros códigos, pero no entiendo porqué el mío
no funciona, y me gustaría aprender R bien.
Quiero sacar números de 5 en 5, desplazándome una posición cada vez para la
derecha:
a <- c(8,10,4,1,7,2,4,6,3,8)
b <- rep(0,5)
i=1
while (i<=6) {
b <- a[i:i+4]
print(b)
i=i+1
}
quiero que en la primera iteración me saque en pantalla los valores
8,10,4,1,7 y me saca el 7. No entiendo el porqué. Para i=1, b<-a[1:5] es
decir, al vector b le mete los números que estén entre las posiciones 1 y 5
incluidas, es decir, el 8, 10,4,1 y 7. Pues no me saca estos números, si no
solamente el 7, es decir, la posición 5. En la siguiente iteración, para
i=2, más de lo mismo, en vez de sacarme los números comprendidos entre 2 y
6, me saca solamente el de la posición 6.
Por qué? no veo el error.
Muchas gracias
El 15 de septiembre de 2015, 16:45, Salvador Castillo Raya <
casraysa en hotmail.com> escribió:
>
> Perdonad por el formato del correo anterior.
>
> Menos elegante que el codigo de Oliver, pero en la linea que estabas
siguiendo:
>
>
> a<-c(8,10,4,1,7,2,4,6,3,8)
>
> b<-rep(0,5)
>
> i=6
>
> while(i>=1){
>
> j=i+4
>
> b<-a[i:j]
>
> print(b)
>
> i=i-1
>
> }
>
> Saludos, Salva.
>
> > Date: Tue, 15 Sep 2015 15:59:59 +0200
> > From: onunez en unex.es
> > To: albert.montolio en gmail.com
> > CC: R-help-es en r-project.org
> > Subject: Re: [R-es] Fwd: problema en while y en extraer valores de un
vector
> >
> > > a <- c(8,10,4,1,7,2,4,6,3,8)
> > > n=length(a)
> > > i=0
> > > while(n>=i+5) {print(tail(a[1:(n-i)],5));i=i+1}
> > [1] 2 4 6 3 8
> > [1] 7 2 4 6 3
> > [1] 1 7 2 4 6
> > [1] 4 1 7 2 4
> > [1] 10 4 1 7 2
> > [1] 8 10 4 1 7
> > >
> >
> > Un saludo. Olivier
> >
> > ----- Mensaje original -----
> > De: "Albert" <albert.montolio en gmail.com>
> > Para: R-help-es en r-project.org
> > Enviados: Martes, 15 de Septiembre 2015 15:35:27
> > Asunto: [R-es] Fwd: problema en while y en extraer valores de un
vector
> >
> >
> >
> >
> > >
> > >
> > >>
> > >> Hola a todos,
> > >>
> > >> es la primera pregunta que hago a esta lista, no se si estoy
en el sitio correcto.
> > >>
> > >> Tengo el siguiente vector:
> > >>
> > >> a <- c(8,10,4,1,7,2,4,6,3,8)
> > >>
> > >> y quiero conseguir en pantalla 5 valores, empezando por el
final, y recorriendo el vector de derecha i izquierda cada vez, es decir, el
resultado tiene que ser:
> > >>
> > >> 2,4,6,3,8
> > >> 7,2,4,6,3
> > >> 1,7,2,4,6
> > >> 4,1,7,2,4
> > >> 10,4,1,7,2
> > >> 8,10,4,1,7
> > >>
> > >> C?digo empleado:
> > >>
> > >> a <- c(8,10,4,1,7,2,4,6,3,8)
> > >>
> > >> b <- rep(0,5)
> > >>
> > >> i=10
> > >> while (i>=4) {
> > >>
> > >> b <- a[i:i-4]
> > >> print(b)
> > >> i=i-1
> > >>
> > >> }
> > >>
> > >> Creo que el problema radica en a[i:i-4], pero no hay manera
de solucionarlo. Si lo hago sin el while, me funciona, pero es que el while es
muy sencillito, no entiendo porqu? no me funciona.
> > >>
> > >> Si me pod?is ayudar os lo agradecer?a mucho.
> > >>
> > >> Saludos.
> > >>
> > >>
> > >>
> > >>
> > >>
> > >>
> >
> > [[alternative HTML version deleted]]
> >
> > _______________________________________________
> > R-help-es mailing list
> > R-help-es en r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-help-es
> >
> > _______________________________________________
> > R-help-es mailing list
> > R-help-es en r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-help-es
>
> [[alternative HTML version deleted]]
>
>
> _______________________________________________ R-help-es mailing list
> R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
>
--
*Albert Montolio Aguado*
[[alternative HTML version deleted]]
Salvador Castillo Raya
2015-Sep-15 16:12 UTC
[R-es] Fwd: problema en while y en extraer valores de un vector
Albert, te faltan dos parentesis en esta parte del codigo: b <- a[i:i+4]
Poniendolos b <- a[i:(i+4)] ya funciona.
Con tu codigo, R entiende que solo estás seleccionado una posicion del vector,
un solo numero (a[5]), por eso falla. Necesitas los parentesis para que se
realice antes la operación y obtenga la selección que quieres (a[1:5]).
Espero a ver sido claro en la explicacion.Saludos, Salva
Date: Tue, 15 Sep 2015 17:42:38 +0200
Subject: Re: [R-es] Fwd: problema en while y en extraer valores de un vector
From: albert.montolio en gmail.com
To: casraysa en hotmail.com
CC: r-help-es en r-project.org
Hola chicos,
muchas gracias, funcionan vuestros códigos, pero no entiendo porqué el mío no
funciona, y me gustaría aprender R bien.
Quiero sacar números de 5 en 5, desplazándome una posición cada vez para la
derecha:
a <- c(8,10,4,1,7,2,4,6,3,8) b <- rep(0,5)i=1while (i<=6) {
b <- a[i:i+4] print(b) i=i+1 }
quiero que en la primera iteración me saque en pantalla los valores 8,10,4,1,7 y
me saca el 7. No entiendo el porqué. Para i=1, b<-a[1:5] es decir, al vector
b le mete los números que estén entre las posiciones 1 y 5 incluidas, es decir,
el 8, 10,4,1 y 7. Pues no me saca estos números, si no solamente el 7, es decir,
la posición 5. En la siguiente iteración, para i=2, más de lo mismo, en vez de
sacarme los números comprendidos entre 2 y 6, me saca solamente el de la
posición 6.
Por qué? no veo el error.
Muchas gracias
El 15 de septiembre de 2015, 16:45, Salvador Castillo Raya <casraysa en
hotmail.com> escribió:
Perdonad por el formato del correo anterior.
Menos elegante que el codigo de Oliver, pero en la linea que estabas siguiendo:
a<-c(8,10,4,1,7,2,4,6,3,8)b<-rep(0,5)i=6while(i>=1){j=i+4b<-a[i:j]print(b)i=i-1}
Saludos, Salva.> Date: Tue, 15 Sep 2015 15:59:59
+0200> From: onunez en unex.es
> To: albert.montolio en gmail.com
> CC: R-help-es en r-project.org
> Subject: Re: [R-es] Fwd: problema en while y en extraer valores de un
vector
>
> > a <- c(8,10,4,1,7,2,4,6,3,8)
> > n=length(a)
> > i=0
> > while(n>=i+5) {print(tail(a[1:(n-i)],5));i=i+1}
> [1] 2 4 6 3 8
> [1] 7 2 4 6 3
> [1] 1 7 2 4 6
> [1] 4 1 7 2 4
> [1] 10 4 1 7 2
> [1] 8 10 4 1 7
> >
>
> Un saludo. Olivier
>
> ----- Mensaje original -----
> De: "Albert" <albert.montolio en gmail.com>
> Para: R-help-es en r-project.org
> Enviados: Martes, 15 de Septiembre 2015 15:35:27
> Asunto: [R-es] Fwd: problema en while y en extraer valores de un vector
>
>
>
>
> >
> >
> >>
> >> Hola a todos,
> >>
> >> es la primera pregunta que hago a esta lista, no se si estoy en el
sitio correcto.
> >>
> >> Tengo el siguiente vector:
> >>
> >> a <- c(8,10,4,1,7,2,4,6,3,8)
> >>
> >> y quiero conseguir en pantalla 5 valores, empezando por el final,
y recorriendo el vector de derecha i izquierda cada vez, es decir, el resultado
tiene que ser:
> >>
> >> 2,4,6,3,8
> >> 7,2,4,6,3
> >> 1,7,2,4,6
> >> 4,1,7,2,4
> >> 10,4,1,7,2
> >> 8,10,4,1,7
> >>
> >> C?digo empleado:
> >>
> >> a <- c(8,10,4,1,7,2,4,6,3,8)
> >>
> >> b <- rep(0,5)
> >>
> >> i=10
> >> while (i>=4) {
> >>
> >> b <- a[i:i-4]
> >> print(b)
> >> i=i-1
> >>
> >> }
> >>
> >> Creo que el problema radica en a[i:i-4], pero no hay manera de
solucionarlo. Si lo hago sin el while, me funciona, pero es que el while es muy
sencillito, no entiendo porqu? no me funciona.
> >>
> >> Si me pod?is ayudar os lo agradecer?a mucho.
> >>
> >> Saludos.
> >>
> >>
> >>
> >>
> >>
> >>
>
> [[alternative HTML version deleted]]
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
[[alternative HTML version deleted]]
_______________________________________________
R-help-es mailing list
R-help-es en r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es
--
Albert Montolio Aguado
[[alternative HTML version deleted]]
Francisco Rodríguez
2015-Sep-15 16:14 UTC
[R-es] Fwd: problema en while y en extraer valores de un vector
a <- c(8,10,4,1,7,2,4,6,3,8)b <- rep(0,5)i=1while (i<=6) { j = i+4
b <- a[i:j] print(b) i=i+1 }
Tienes que resolver lo que va entre el valor de lo que va entre corchetes del
sub-vector antes.
Si no, lo que sucede es que : tiene prioridad sobre +, y entonces hace en el
primer paso 1:1 + 4, desde 1 hasta 1, que es un único elemento al que suma 4
Un saludo> Date: Tue, 15 Sep 2015 17:42:38 +0200
> From: albert.montolio en gmail.com
> To: casraysa en hotmail.com
> CC: r-help-es en r-project.org
> Subject: Re: [R-es] Fwd: problema en while y en extraer valores de un
vector
>
> Hola chicos,
>
> muchas gracias, funcionan vuestros códigos, pero no entiendo porqué el mío
> no funciona, y me gustaría aprender R bien.
>
> Quiero sacar números de 5 en 5, desplazándome una posición cada vez para la
> derecha:
>
>
> a <- c(8,10,4,1,7,2,4,6,3,8)
> b <- rep(0,5)
> i=1
> while (i<=6) {
>
> b <- a[i:i+4]
> print(b)
> i=i+1
>
> }
>
> quiero que en la primera iteración me saque en pantalla los valores
> 8,10,4,1,7 y me saca el 7. No entiendo el porqué. Para i=1, b<-a[1:5] es
> decir, al vector b le mete los números que estén entre las posiciones 1 y 5
> incluidas, es decir, el 8, 10,4,1 y 7. Pues no me saca estos números, si no
> solamente el 7, es decir, la posición 5. En la siguiente iteración, para
> i=2, más de lo mismo, en vez de sacarme los números comprendidos entre 2 y
> 6, me saca solamente el de la posición 6.
>
> Por qué? no veo el error.
>
> Muchas gracias
>
> El 15 de septiembre de 2015, 16:45, Salvador Castillo Raya <
> casraysa en hotmail.com> escribió:
>
> >
> > Perdonad por el formato del correo anterior.
> >
> > Menos elegante que el codigo de Oliver, pero en la linea que estabas
siguiendo:
> >
> >
> > a<-c(8,10,4,1,7,2,4,6,3,8)
> >
> > b<-rep(0,5)
> >
> > i=6
> >
> > while(i>=1){
> >
> > j=i+4
> >
> > b<-a[i:j]
> >
> > print(b)
> >
> > i=i-1
> >
> > }
> >
> > Saludos, Salva.
> >
> > > Date: Tue, 15 Sep 2015 15:59:59 +0200
> > > From: onunez en unex.es
> > > To: albert.montolio en gmail.com
> > > CC: R-help-es en r-project.org
> > > Subject: Re: [R-es] Fwd: problema en while y en extraer valores
de un vector
> > >
> > > > a <- c(8,10,4,1,7,2,4,6,3,8)
> > > > n=length(a)
> > > > i=0
> > > > while(n>=i+5) {print(tail(a[1:(n-i)],5));i=i+1}
> > > [1] 2 4 6 3 8
> > > [1] 7 2 4 6 3
> > > [1] 1 7 2 4 6
> > > [1] 4 1 7 2 4
> > > [1] 10 4 1 7 2
> > > [1] 8 10 4 1 7
> > > >
> > >
> > > Un saludo. Olivier
> > >
> > > ----- Mensaje original -----
> > > De: "Albert" <albert.montolio en gmail.com>
> > > Para: R-help-es en r-project.org
> > > Enviados: Martes, 15 de Septiembre 2015 15:35:27
> > > Asunto: [R-es] Fwd: problema en while y en extraer valores de un
vector
> > >
> > >
> > >
> > >
> > > >
> > > >
> > > >>
> > > >> Hola a todos,
> > > >>
> > > >> es la primera pregunta que hago a esta lista, no se si
estoy en el sitio correcto.
> > > >>
> > > >> Tengo el siguiente vector:
> > > >>
> > > >> a <- c(8,10,4,1,7,2,4,6,3,8)
> > > >>
> > > >> y quiero conseguir en pantalla 5 valores, empezando por
el final, y recorriendo el vector de derecha i izquierda cada vez, es decir, el
resultado tiene que ser:
> > > >>
> > > >> 2,4,6,3,8
> > > >> 7,2,4,6,3
> > > >> 1,7,2,4,6
> > > >> 4,1,7,2,4
> > > >> 10,4,1,7,2
> > > >> 8,10,4,1,7
> > > >>
> > > >> C?digo empleado:
> > > >>
> > > >> a <- c(8,10,4,1,7,2,4,6,3,8)
> > > >>
> > > >> b <- rep(0,5)
> > > >>
> > > >> i=10
> > > >> while (i>=4) {
> > > >>
> > > >> b <- a[i:i-4]
> > > >> print(b)
> > > >> i=i-1
> > > >>
> > > >> }
> > > >>
> > > >> Creo que el problema radica en a[i:i-4], pero no hay
manera de solucionarlo. Si lo hago sin el while, me funciona, pero es que el
while es muy sencillito, no entiendo porqu? no me funciona.
> > > >>
> > > >> Si me pod?is ayudar os lo agradecer?a mucho.
> > > >>
> > > >> Saludos.
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > >
> > > [[alternative HTML version deleted]]
> > >
> > > _______________________________________________
> > > R-help-es mailing list
> > > R-help-es en r-project.org
> > > https://stat.ethz.ch/mailman/listinfo/r-help-es
> > >
> > > _______________________________________________
> > > R-help-es mailing list
> > > R-help-es en r-project.org
> > > https://stat.ethz.ch/mailman/listinfo/r-help-es
> >
> > [[alternative HTML version deleted]]
> >
> >
> > _______________________________________________ R-help-es mailing list
> > R-help-es en r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es
> >
>
>
>
> --
>
>
> *Albert Montolio Aguado*
>
> [[alternative HTML version deleted]]
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
[[alternative HTML version deleted]]
Albert Montolio
2015-Sep-15 17:06 UTC
[R-es] Fwd: problema en while y en extraer valores de un vector
Muchísimas gracias, no lo hubiese visto solo...
Me podéis ayudar con este código? He escrito en cada línea lo que he hecho.
El objetivo es calcular las medias móviles para un vector dado. El usuario
introduce los periodos, por ejemplo, quiero calcular la media móvil de 5
periodos para el vector a(4,3,5,3,5,8,7,1,2,4,6)
código utlizado:
#calcular la media móvil de X periodos en un vector de longitud variable.
#p.eje., calcular la media de 5 periodos.
Media function(periodos){
a <- c(8,10,4,1,7,2,4,6,3,8) #vector donde calcular la media móvil
n<-length(a) #obtengo la longitud del vector a
c <- rep(0,n-periodos+1) #creo el vector c, donde guardare las medias cada
"x"periodos
t=1 #contador para recorrer el vector c, donde iran guardadas las medias
para cada iteracion.
i=n-periodos+1 #inicializo i.P.eje., si quiero la media móvil de 2
periodos, y el vector a
#es de 10 valores, i=9, es decir, calculo la media de los valores 9 y 10
#en la primera iteración.
while (i>=periodos) { #recorro el while hasta que i<2, es decir, 1, no se
puede calcular la media
j=i+periodos-1 #consigo el último valor del set de datos a calcular la
media(P.eje. i=9,
#periodos=2 --> j=10. Calculo la media móvil de 9 a 10.
c[t] <- mean(a[i:j]) #assigno al vector c creado anteriorment, en la
posición t=1, la primera media móvil.
i=i-1 #avanzo por el vector a una posicion hacia la izquierda.
t=t+1 #avanzo por el vector c una posicion hacia la derecha, para seguir
guardando medias
}
return(c)
}
me da el siguiente error:
Fehler: keine Funktion abzubrechen, springe zum Top Level
algo así como: Error: ninguna función para interrumpir, saltar al nivel Top.
No lo entiendo. No veo donde está el error.
Saludos
El 15 de septiembre de 2015, 18:12, Salvador Castillo Raya <
casraysa en hotmail.com> escribió:
> Albert, te faltan dos parentesis en esta parte del codigo: b <- a[i:i+4]
>
> Poniendolos b <- a[i:(i+4)] ya funciona.
>
> Con tu codigo, R entiende que solo estás seleccionado una posicion del
> vector, un solo numero (a[5]), por eso falla. Necesitas los parentesis para
> que se realice antes la operación y obtenga la selección que quieres
> (a[1:5]).
>
> Espero a ver sido claro en la explicacion.
> Saludos, Salva
>
> ------------------------------
> Date: Tue, 15 Sep 2015 17:42:38 +0200
> Subject: Re: [R-es] Fwd: problema en while y en extraer valores de un
> vector
> From: albert.montolio en gmail.com
> To: casraysa en hotmail.com
> CC: r-help-es en r-project.org
>
>
> Hola chicos,
>
> muchas gracias, funcionan vuestros códigos, pero no entiendo porqué el mío
> no funciona, y me gustaría aprender R bien.
>
> Quiero sacar números de 5 en 5, desplazándome una posición cada vez para
> la derecha:
>
>
> a <- c(8,10,4,1,7,2,4,6,3,8)
> b <- rep(0,5)
> i=1
> while (i<=6) {
>
> b <- a[i:i+4]
> print(b)
> i=i+1
>
> }
>
> quiero que en la primera iteración me saque en pantalla los valores
> 8,10,4,1,7 y me saca el 7. No entiendo el porqué. Para i=1, b<-a[1:5] es
> decir, al vector b le mete los números que estén entre las posiciones 1 y 5
> incluidas, es decir, el 8, 10,4,1 y 7. Pues no me saca estos números, si no
> solamente el 7, es decir, la posición 5. En la siguiente iteración, para
> i=2, más de lo mismo, en vez de sacarme los números comprendidos entre 2 y
> 6, me saca solamente el de la posición 6.
>
> Por qué? no veo el error.
>
> Muchas gracias
>
> El 15 de septiembre de 2015, 16:45, Salvador Castillo Raya <
> casraysa en hotmail.com> escribió:
>
>
> Perdonad por el formato del correo anterior.
>
> Menos elegante que el codigo de Oliver, pero en la linea que estabas
siguiendo:
>
>
> a<-c(8,10,4,1,7,2,4,6,3,8)
>
> b<-rep(0,5)
>
> i=6
>
> while(i>=1){
>
> j=i+4
>
> b<-a[i:j]
>
> print(b)
>
> i=i-1
>
> }
>
> Saludos, Salva.
>
> > Date: Tue, 15 Sep 2015 15:59:59 +0200
> > From: onunez en unex.es
> > To: albert.montolio en gmail.com
> > CC: R-help-es en r-project.org
> > Subject: Re: [R-es] Fwd: problema en while y en extraer valores de un
vector
> >
> > > a <- c(8,10,4,1,7,2,4,6,3,8)
> > > n=length(a)
> > > i=0
> > > while(n>=i+5) {print(tail(a[1:(n-i)],5));i=i+1}
> > [1] 2 4 6 3 8
> > [1] 7 2 4 6 3
> > [1] 1 7 2 4 6
> > [1] 4 1 7 2 4
> > [1] 10 4 1 7 2
> > [1] 8 10 4 1 7
> > >
> >
> > Un saludo. Olivier
> >
> > ----- Mensaje original -----
> > De: "Albert" <albert.montolio en gmail.com>
> > Para: R-help-es en r-project.org
> > Enviados: Martes, 15 de Septiembre 2015 15:35:27
> > Asunto: [R-es] Fwd: problema en while y en extraer valores de un
vector
> >
> >
> >
> >
> > >
> > >
> > >>
> > >> Hola a todos,
> > >>
> > >> es la primera pregunta que hago a esta lista, no se si estoy
en el sitio correcto.
> > >>
> > >> Tengo el siguiente vector:
> > >>
> > >> a <- c(8,10,4,1,7,2,4,6,3,8)
> > >>
> > >> y quiero conseguir en pantalla 5 valores, empezando por el
final, y recorriendo el vector de derecha i izquierda cada vez, es decir, el
resultado tiene que ser:
> > >>
> > >> 2,4,6,3,8
> > >> 7,2,4,6,3
> > >> 1,7,2,4,6
> > >> 4,1,7,2,4
> > >> 10,4,1,7,2
> > >> 8,10,4,1,7
> > >>
> > >> C?digo empleado:
> > >>
> > >> a <- c(8,10,4,1,7,2,4,6,3,8)
> > >>
> > >> b <- rep(0,5)
> > >>
> > >> i=10
> > >> while (i>=4) {
> > >>
> > >> b <- a[i:i-4]
> > >> print(b)
> > >> i=i-1
> > >>
> > >> }
> > >>
> > >> Creo que el problema radica en a[i:i-4], pero no hay manera
de solucionarlo. Si lo hago sin el while, me funciona, pero es que el while es
muy sencillito, no entiendo porqu? no me funciona.
> > >>
> > >> Si me pod?is ayudar os lo agradecer?a mucho.
> > >>
> > >> Saludos.
> > >>
> > >>
> > >>
> > >>
> > >>
> > >>
> >
> > [[alternative HTML version deleted]]
> >
> > _______________________________________________
> > R-help-es mailing list
> > R-help-es en r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-help-es
> >
> > _______________________________________________
> > R-help-es mailing list
> > R-help-es en r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-help-es
>
> [[alternative HTML version deleted]]
>
>
> _______________________________________________ R-help-es mailing list
> R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
>
>
> --
>
>
> *Albert Montolio Aguado*
>
--
*Albert Montolio Aguado*
[[alternative HTML version deleted]]
daniel
2015-Sep-15 17:11 UTC
[R-es] Fwd: problema en while y en extraer valores de un vector
Albert, ¿Es esto lo que preguntas? i=1 a[i:i+4] [1] 7 a[i:(i+4)] [1] 8 10 4 1 7 Mas en detalle: i:i+4 [1] 5 i:(i+4) [1] 1 2 3 4 5 Espero haberte interpretado. Daniel Merino El 15 de septiembre de 2015, 12:42, Albert Montolio < albert.montolio en gmail.com> escribió:> Hola chicos, > > muchas gracias, funcionan vuestros códigos, pero no entiendo porqué el mío > no funciona, y me gustaría aprender R bien. > > Quiero sacar números de 5 en 5, desplazándome una posición cada vez para la > derecha: > > > a <- c(8,10,4,1,7,2,4,6,3,8) > b <- rep(0,5) > i=1 > while (i<=6) { > > b <- a[i:i+4] > print(b) > i=i+1 > > } > > quiero que en la primera iteración me saque en pantalla los valores > 8,10,4,1,7 y me saca el 7. No entiendo el porqué. Para i=1, b<-a[1:5] es > decir, al vector b le mete los números que estén entre las posiciones 1 y 5 > incluidas, es decir, el 8, 10,4,1 y 7. Pues no me saca estos números, si no > solamente el 7, es decir, la posición 5. En la siguiente iteración, para > i=2, más de lo mismo, en vez de sacarme los números comprendidos entre 2 y > 6, me saca solamente el de la posición 6. > > Por qué? no veo el error. > > Muchas gracias > > El 15 de septiembre de 2015, 16:45, Salvador Castillo Raya < > casraysa en hotmail.com> escribió: > > > > > Perdonad por el formato del correo anterior. > > > > Menos elegante que el codigo de Oliver, pero en la linea que estabas > siguiendo: > > > > > > a<-c(8,10,4,1,7,2,4,6,3,8) > > > > b<-rep(0,5) > > > > i=6 > > > > while(i>=1){ > > > > j=i+4 > > > > b<-a[i:j] > > > > print(b) > > > > i=i-1 > > > > } > > > > Saludos, Salva. > > > > > Date: Tue, 15 Sep 2015 15:59:59 +0200 > > > From: onunez en unex.es > > > To: albert.montolio en gmail.com > > > CC: R-help-es en r-project.org > > > Subject: Re: [R-es] Fwd: problema en while y en extraer valores de un > vector > > > > > > > a <- c(8,10,4,1,7,2,4,6,3,8) > > > > n=length(a) > > > > i=0 > > > > while(n>=i+5) {print(tail(a[1:(n-i)],5));i=i+1} > > > [1] 2 4 6 3 8 > > > [1] 7 2 4 6 3 > > > [1] 1 7 2 4 6 > > > [1] 4 1 7 2 4 > > > [1] 10 4 1 7 2 > > > [1] 8 10 4 1 7 > > > > > > > > > > Un saludo. Olivier > > > > > > ----- Mensaje original ----- > > > De: "Albert" <albert.montolio en gmail.com> > > > Para: R-help-es en r-project.org > > > Enviados: Martes, 15 de Septiembre 2015 15:35:27 > > > Asunto: [R-es] Fwd: problema en while y en extraer valores de un vector > > > > > > > > > > > > > > > > > > > > > > > >> > > > >> Hola a todos, > > > >> > > > >> es la primera pregunta que hago a esta lista, no se si estoy en el > sitio correcto. > > > >> > > > >> Tengo el siguiente vector: > > > >> > > > >> a <- c(8,10,4,1,7,2,4,6,3,8) > > > >> > > > >> y quiero conseguir en pantalla 5 valores, empezando por el final, > y recorriendo el vector de derecha i izquierda cada vez, es decir, el > resultado tiene que ser: > > > >> > > > >> 2,4,6,3,8 > > > >> 7,2,4,6,3 > > > >> 1,7,2,4,6 > > > >> 4,1,7,2,4 > > > >> 10,4,1,7,2 > > > >> 8,10,4,1,7 > > > >> > > > >> C?digo empleado: > > > >> > > > >> a <- c(8,10,4,1,7,2,4,6,3,8) > > > >> > > > >> b <- rep(0,5) > > > >> > > > >> i=10 > > > >> while (i>=4) { > > > >> > > > >> b <- a[i:i-4] > > > >> print(b) > > > >> i=i-1 > > > >> > > > >> } > > > >> > > > >> Creo que el problema radica en a[i:i-4], pero no hay manera de > solucionarlo. Si lo hago sin el while, me funciona, pero es que el while es > muy sencillito, no entiendo porqu? no me funciona. > > > >> > > > >> Si me pod?is ayudar os lo agradecer?a mucho. > > > >> > > > >> Saludos. > > > >> > > > >> > > > >> > > > >> > > > >> > > > >> > > > > > > [[alternative HTML version deleted]] > > > > > > _______________________________________________ > > > R-help-es mailing list > > > R-help-es en r-project.org > > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > > > _______________________________________________ > > > R-help-es mailing list > > > R-help-es en r-project.org > > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > [[alternative HTML version deleted]] > > > > > > _______________________________________________ R-help-es mailing list > > R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > > > -- > > > *Albert Montolio Aguado* > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Daniel [[alternative HTML version deleted]]