Pass variable name to a function in r

10,641

Solution 1

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)

Solution 2

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

Share:
10,641
Misha
Author by

Misha

Updated on June 27, 2022

Comments

  • Misha
    Misha almost 2 years

    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