R/func.mean.formula.r

Defines functions func.mean.formula

Documented in func.mean.formula

#' @rdname Descriptive
#' @export
func.mean.formula<-function(formula, data = NULL,...,drop=FALSE)
{
 tf <- terms.formula(formula)
 fac <- attr(tf, "term.labels")
 if (attr(tf, "response") > 0)  response <- as.character(attr(tf, "variables")[2])
 if (missing(formula) || (length(formula) != 3L))
        stop("'formula' missing or incorrect")
 ldata<-data
 data<-ldata$df
 if (is.null(ldata$df))   stop("'df' element is missing or incorrect")
# drop=TRUE
 if (is.vector(data)) data<-as.data.frame(data)
 if (is.matrix(data)) data<-as.data.frame(data)
   f<-ldata$df[[fac]]
   dat<-ldata[[response]]
   if (!is.factor(f)) f<-factor(f)
   nlev<-nlevels(f)
   lev<-levels(f)
   if (is.matrix(dat$data)) dat$data<-data.frame(dat$data)
#   out<-do.call("split.fdata",list("x"=dat,"f"=f,"drop"=drop))
#   for (i in 1:nlev) out[[lev[i]]]<-func.mean(out[[lev[i]]])
      out<-split(dat$data,f,drop=drop,...)    
 
     out2<-func.mean(fdata(out[[lev[1]]],dat$argvals,dat$rangeval,dat$names))     

     for (i in 2:nlev) out2<-c(out2,func.mean(fdata(out[[lev[i]]],dat$argvals,dat$rangeval,dat$names)))
#    for (i in 1:nlev) out[[lev[i]]]<-func.mean(fdata(out[[lev[i]]],dat$argvals,dat$rangeval,dat$names))
rownames(out2$data)<-lev
out2
}
     

Try the fda.usc package in your browser

Any scripts or data that you put into this service are public.

fda.usc documentation built on Oct. 17, 2022, 9:06 a.m.