Selecting a subgroup
I use the following function to select a subgroup from a data vector
(usually to calculate descriptive stats).
select.range<-function (groupvec, min, max, data)
{
if (nargs() > 3) {
min.cond <- groupvec >= min
max.cond <- groupvec < max
cond <- min.cond & max.cond
selected <- na.remove(ifelse(cond, data, NA))
invisible(selected)
}
else cat("Usage: select.range(groupvec,min,max,datavec)\n")
}
e.g.
tdata.df<-read.table("tdata",header=T,sep=",")
tdata.df
group value year 1 1 0 1980 2 1 10 1981 3 1 14 1982 4 1 20 1983 5 1 25 1984 6 1 30 1985 7 2 0 1980 8 2 5 1981 9 2 6 1982 10 2 8 1984 11 3 0 1984 12 3 2 1985 13 4 0 1980 14 4 20 1981 15 4 30 1982 16 4 30 1984 17 4 35 1985
value1<-select.range(tdata.df$group,1,1.1,tdata.df$value) value1
[1] 0 10 14 20 25 30 Note that you cannot use 1,1 as the range - you'll get an empty result. Apologies if it's not sufficiently elegant. Jim -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._