[R] R: Simple programming question

Guazzetti Stefano Stefano.Guazzetti at ausl.re.it
Fri May 18 16:51:56 CEST 2007


try also this

dfr$score<-factor(dfr$var3 %in% sort(unique(dfr$var3), decr=T)[1:2] * dfr$var3,
                   labels=c("low", "mid", "high"))
Hope this helps, 

Stefano

-----Messaggio originale-----
Da: r-help-bounces at stat.math.ethz.ch
[mailto:r-help-bounces at stat.math.ethz.ch]Per conto di Lauri Nikkinen
Inviato: venerdì 18 maggio 2007 15.15
A: r-help at stat.math.ethz.ch
Oggetto: [R] Simple programming question


Hi R-users,

I have a simple question for R heavy users. If I have a data frame like this


dfr <- data.frame(id=1:16, categ=rep(LETTERS[1:4], 4),
var3=c(8,7,6,6,5,4,5,4,3,4,3,2,3,2,1,1))
dfr <- dfr[order(dfr$categ),]

and I want to score values or points in variable named "var3" following this
kind of logic:

1. the highest value of var3 within category (variable named "categ") ->
"high"
2. the second highest value -> "mid"
3. lowest value -> "low"

This would be the output of this reasoning:

dfr$score <-
factor(c("high","mid","low","low","high","mid","mid","low","high","mid","low","low","high","mid","low","low"))
dfr

The question is how I do this programmatically in R (i.e. if I have 2000
rows in my dfr)?

I appreciate your help!

Cheers,
Lauri

	[[alternative HTML version deleted]]

______________________________________________
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
and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list