将变量名称传递给r中的函数

时间:2010-06-01 08:51:22

标签: function r variables

是否可以在函数调用中传递一个变量名,并在函数中使用它?

伪代码:

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)

我想做的是

q(e)

已退回

非E,E,E,非E,非E,E,E,非E,非-E

//中号


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")

谢谢,

中号

2 个答案:

答案 0 :(得分:3)

您可以使用get

例如

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

编辑:正如Aidan Cully正确地说的那样你应该把你的函数称为q("e")(即用一个字符串)

答案 1 :(得分:3)

除了“q”之外,你应该为你的功能选择一个不同的名字 - 否则你永远无法完成;)