Note that objects can have more than one class, in which case your == and %in% might not work as expected.
Better to use inherits(). cheers, Steve -----Original Message----- From: R-help [mailto:r-help-boun...@r-project.org] On Behalf Of Steven Yen Sent: Wednesday, 24 June 2015 11:37a To: boB Rudis Cc: r-help mailing list Subject: Re: [R] Call to a function Thanks! From this I learn the much needed class statement if (class(wt)=="character") wt <- x[, wt] which serves my need in a bigger project. Steven Yen On 6/23/2015 6:20 PM, boB Rudis wrote: > You can do something like: > > aaa <- function(data, w=w) { > if (class(w) %in% c("integer", "numeric", "double")) { > out <- mean(w) > } else { > out <- mean(data[, w]) > } > return(out) > } > > (there are some typos in your function you may want to double check, too) > > On Tue, Jun 23, 2015 at 5:39 PM, Steven Yen <sye...@gmail.com> wrote: >> mydata<-data.frame(matrix(1:20,ncol=2)) >> colnames(mydata) <-c("v1","v2") >> summary(mydata) >> >> aaa<-function(data,w=w){ >> if(is.vector(w)){ >> out<-mean(w) >> } else { >> out<-mean(data[wt]) >> } >> return(out) >> } >> >> aaa(mydata,mydata$v1) >> aaa(mydata,"v1") # want this call to work > -- Steven Yen My e-mail alert: https://youtu.be/9UwEAruhyhY?list=PLpwR3gb9OGHP1BzgVuO9iIDdogVOijCtO ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.