[R] constructing specially ordered factor
Petr Pikal
petr.pikal at precheza.cz
Mon Oct 4 13:05:04 CEST 2004
On 4 Oct 2004 at 12:01, Khamenia, Valery wrote:
> Hi all,
>
> my colleagues deal with tables, where every factor is
> represented in two columns. The first column contains some
> numeric codes and the second contains the corresponding
> symbolic name. For example:
>
> ISEX SSEX
> 0 Female
> 1 Male
> 0 Female
> 0 Female
> ...
>
> another example:
>
> ICONC SCONC
> 10 Normal
> 1000 ExtraHigh
> 10 Normal
> 0 Nothing
> 100 High
> ...
>
> Colleagues require that the ordering should be done
> always by numeric column and not by the column with
> symbolic equivalents.
>
> Here comes the question:
>
> Is it possible to create factor with properly ordered and
> labeled values in nicer form then in the following long
> solution:
>
> Factor<-function(Names,Weights) {
> iunique = !duplicated(Weights)
> uniqueWeights = Weights[iunique]
> uniqueNames = Names[iunique] # corresponding unique names
> factor(Names, uniqueNames[order(uniqueWeights)])
> }
>
> Factor(SSEX, ISEX)
>
> Factor(SCONC, ICONC)
Hallo
Is that what you want?
> ooo<-order(levels(factor(pokus$ICONC)), decreasing=T)
> my.order<-levels(factor(pokus$SCONC))[ooo]
> factor(pokus$SCONC, levels=my.order)
[1] Normal ExtraHigh Normal Nothing High
Levels: Nothing Normal High ExtraHigh
If you want it in a function
Factor <- function(f,n, decreasing=TRUE, ...) {
ooo<-order(levels(factor(n)), decreasing=decreasing)
my.order<-levels(factor(f))[ooo]
factor(f, levels=my.order)
}
Cheers
Petr
>
> Thank you in advance for the comments,
> Valery.
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
Petr Pikal
petr.pikal at precheza.cz
More information about the R-help
mailing list