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