views:

117

answers:

2

Is it possible to pass just a variable name in a function call and have it utilised as such within the function??

pseudocode:

q<-function(A){
    b<-(w%in%A.2|w%in%A.7)  
    factor(b,levels=c(F,T),labels=c("non-"A,A))}


w<-c(0:10)
e.2<-c(1,2)
e.7<-c(6,7)

what I´d like to do is

q(e)

and have returned

non-e,e,e,non-e,non-e,e,e,non-e,non-e

//M


q<-function(A) {
    a2<-get(paste(a,".2",sep=""))
    a7<-get(paste(a,".7",sep=""))
    b<-(w%in%a2|%in%a7) 
    factor(b,levels=c(F,T),labels=c(paste("non-",a,sep=""),a)) 
}

q("e")

Thx,

M

+2  A: 

You can use get

For instance

var1 <- get(paste(e, ".2", sep=""))
var2 <- get(paste(e, ".7", sep=""))

EDIT: as Aidan Cully correctly says then you should call your function as q("e") (i.e. with a string)

nico
Note also that the OP should call `q("e")` instead of `q(e)`.
Aidan Cully
@Aidan Cully: Good point, I'll update the answer
nico
+1  A: 

You should probably choose a different name for your function other than "q" - otherwise you'll never be able to finish ;)

mdsumner