Hola
La duda que tengo es la siguiente
Quiero coger elementos de unas listas de valores y que haga un bucle con
unas condiciones: que no sean iguales k y z y que si ha hecho la
simulación para, por ejemplo 0.1 y 0.15, no lo haga para 0.15 y 0.1 (es
decir tener combinaciones de esas litas)
La primera condición es fácil, pero con la segunda lo conseguido creando
una lista en txt y que la lea en cada iteración y ponerles condiciones
con if. ¿Hay alguna forma más fácil?
Saludos y gracias
#Por ejemplo
a <-c(0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5)
b <-c(0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5)
for (k in a){
for (z in b){
if(k!=z){
#lo que sea
}}}
[[alternative HTML version deleted]]
Prueba con: combn(c(0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5), 2) Un saludo Isidro Hidalgo Arellano Observatorio del Mercado de Trabajo Consejería de Economía, Empresas y Empleo http://www.castillalamancha.es/> -----Mensaje original----- > De: R-help-es [mailto:r-help-es-bounces en r-project.org] En nombre de José > Miguel Contreras > Enviado el: miércoles, 11 de noviembre de 2015 11:22 > Para: r-help-es en r-project.org > Asunto: [R-es] Selección de elementos de dos listas > > Hola > > La duda que tengo es la siguiente > > Quiero coger elementos de unas listas de valores y que haga un bucle con > unas condiciones: que no sean iguales k y z y que si ha hecho lasimulación> para, por ejemplo 0.1 y 0.15, no lo haga para 0.15 y 0.1 (es decir tener > combinaciones de esas litas) > > La primera condición es fácil, pero con la segunda lo conseguido creandouna> lista en txt y que la lea en cada iteración y ponerles condiciones con if.¿Hay> alguna forma más fácil? > > Saludos y gracias > > #Por ejemplo > > a <-c(0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5) > > b <-c(0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5) > > for (k in a){ > > for (z in b){ > > if(k!=z){ > > #lo que sea > > }}} > > > [[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
Hola,
Extendiendo un poco más lo que ha comentado Isidro... pero con la misma
idea de base...
a <-c(0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5)
valFor <- as.data.frame(t(combn(a,2)))
for(i in 1:nrow(valFor)) {
k <- valFor[i,1]
z <- valFor[i,2]
....1
}
Incluso el bucle lo podrías sustituir por alguna de las *apply...
Saludos,
Carlos Ortega
www.qualityexcellence.es
El 11 de noviembre de 2015, 11:21, José Miguel Contreras <jmcontreras en
ugr.es> escribió:
> Hola
>
> La duda que tengo es la siguiente
>
> Quiero coger elementos de unas listas de valores y que haga un bucle con
> unas condiciones: que no sean iguales k y z y que si ha hecho la
> simulación para, por ejemplo 0.1 y 0.15, no lo haga para 0.15 y 0.1 (es
> decir tener combinaciones de esas litas)
>
> La primera condición es fácil, pero con la segunda lo conseguido creando
> una lista en txt y que la lea en cada iteración y ponerles condiciones
> con if. ¿Hay alguna forma más fácil?
>
> Saludos y gracias
>
> #Por ejemplo
>
> a <-c(0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5)
>
> b <-c(0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5)
>
> for (k in a){
>
> for (z in b){
>
> if(k!=z){
>
> #lo que sea
>
> }}}
>
>
> [[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
>
--
Saludos,
Carlos Ortega
www.qualityexcellence.es
[[alternative HTML version deleted]]
Y si necesitaras todos los casos, una función que probablemente conozcas es expand.grid, pero por si acaso la pongo, que es muy útil: vars <- c(0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5) combinaciones <- expand.grid(vars, vars) combinaciones Un saludo> -----Mensaje original----- > De: R-help-es [mailto:r-help-es-bounces en r-project.org] En nombre de > Carlos Ortega > Enviado el: miércoles, 11 de noviembre de 2015 11:30 > Para: José Miguel Contreras > CC: Lista R > Asunto: Re: [R-es] Selección de elementos de dos listas > > Hola, > Extendiendo un poco más lo que ha comentado Isidro... pero con la misma > idea de base... > > > a <-c(0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5) valFor <- > as.data.frame(t(combn(a,2))) > > for(i in 1:nrow(valFor)) { > k <- valFor[i,1] > z <- valFor[i,2] > ....1 > } > > Incluso el bucle lo podrías sustituir por alguna de las *apply... > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > > El 11 de noviembre de 2015, 11:21, José Miguel Contreras > <jmcontreras en ugr.es > > escribió: > > > Hola > > > > La duda que tengo es la siguiente > > > > Quiero coger elementos de unas listas de valores y que haga un bucle > > con unas condiciones: que no sean iguales k y z y que si ha hecho la > > simulación para, por ejemplo 0.1 y 0.15, no lo haga para 0.15 y 0.1 > > (es decir tener combinaciones de esas litas) > > > > La primera condición es fácil, pero con la segunda lo conseguido > > creando una lista en txt y que la lea en cada iteración y ponerles > > condiciones con if. ¿Hay alguna forma más fácil? > > > > Saludos y gracias > > > > #Por ejemplo > > > > a <-c(0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5) > > > > b <-c(0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5) > > > > for (k in a){ > > > > for (z in b){ > > > > if(k!=z){ > > > > #lo que sea > > > > }}} > > > > > > [[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 > > > > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.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