Hola,

Además de la solución de Daniel (perfectamente válida y compacta) quise
probar a hacerlo de otra forma....


library(sqldf)
tmpa <- sqldf("select N,P from df where P%2 == 0 order by P,N")
tmpb <- sqldf("select N,P from df where P%2 == 1 order by P, N desc")
sqldf("select * from tmpa union all select * from tmpb")


Saludos,
Carlos Ortega
www.qualityexcellence.es


El 18 de marzo de 2013 17:25, daniel <daniel319@gmail.com> escribió:

> Leonardo, otra vez usa dput para los datos.
>
>
> library(gtools)
> df <- structure(list(N = c(34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
> 44, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 34, 35, 36, 37,
> 38, 39, 40, 41, 42, 43, 44, 35, 36, 34, 35), P = structure(c(1L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L,
> 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
> 4L, 4L, 5L, 5L), .Label = c("6", "7", "8", "9", "10"), class =
> "factor")), .Names = c("N",
> "P"), row.names = c(NA, -37L), class = "data.frame")
> str(df)
> df$P <- as.numeric(as.character(df$P))
> str(df)
> df[ order( df$P, ifelse( odd(df$P), -df$N, df$N)), ]
> sessionInfo()
>
> Espero haberte interpretado bien y si es así que lo anterior te sirva
> para encontrar una mejor manera de hacerlo.
>
> Daniel Merino
>
> El día 18 de marzo de 2013 11:38, Leonardo Hernández Pérez
> <leonardo.hernandez@etecsa.cu> escribió:
> > Hola Colegas:
> >
> > Tengo un dataframe o un a matriz con estos datos:
> >
> > N es un escalar y P un factor, quiero organizarlo de forma tal que
> mantengan
> > esta estructura pero que los valores de N correspondientes al factor P =
> 6
> > se mantengan organizados de forma ascendente, los valores de N que
> > correspondan al factor P = 7 queden organizados de forma descendente y
> así
> > sucesivamente con todos los demás factores.
> >
> >
> >
> >      N      P
> >     34     6
> >     35     6
> >     36     6
> >     37     6
> >     38     6
> >     39     6
> >     40     6
> >     41     6
> >     42     6
> >     43     6
> >     44     6
> >     34     7
> >     35     7
> >     36     7
> >     37     7
> >     38     7
> >     39     7
> >     40     7
> >     41     7
> >     42     7
> >     43     7
> >     44     7
> >     34     8
> >     35     8
> >     36     8
> >     37     8
> >     38     8
> >     39     8
> >     40     8
> >     41     8
> >     42     8
> >     43     8
> >     44     8
> >     35     9
> >     36     9
> >     34    10
> >     35    10
> >
> >
> > El resultado que quiero es este
> >
> >      N      P
> >     34     6
> >     35     6
> >     36     6
> >     37     6
> >     38     6
> >     39     6
> >     40     6
> >     41     6
> >     42     6
> >     43     6
> >     44     6
> >     44     7
> >     43     7
> >     42     7
> >     41     7
> >     40     7
> >     39     7
> >     38     7
> >     37     7
> >     36     7
> >     35     7
> >     34     7
> >     34     8
> >     35     8
> >     36     8
> >     37     8
> >     38     8
> >     39     8
> >     40     8
> >     41     8
> >     42     8
> >     43     8
> >     44     8
> >     36     9
> >     35     9
> >     34    10
> >     35    10
> >
> > Es posible lograrlo??????
> >
> > Un Saludo
> >
> > Leonardo
> >
> >
> >
> > ---
> > This message was processed by Kaspersky Mail Gateway 5.6.28/RELEASE
> running
> > at host imx3.etecsa.cu
> > Visit our web-site: <http://www.kaspersky.com>, <
> http://www.viruslist.com>
> >
> > _______________________________________________
> > R-help-es mailing list
> > R-help-es@r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-help-es
> >
>
>
>
> --
> Daniel
>
> _______________________________________________
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>



-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es

	[[alternative HTML version deleted]]

