2010-06-01 132 views
3

是否可以在函數調用中僅傳遞一個變量名稱,並在函數內部使用它?將變量名稱傳遞給函數r

僞代碼:

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

// 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,

中號

+1

在第四行應該是'B' - (W% in%a2 | w%in%a7)'或'b <-w%in%c(a2,a7)'。你在代碼中使用'A'作爲參數和'a'。 – Marek 2010-06-01 10:46:21

回答

3

您可以使用get

例如

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

編輯:艾丹科利正確地說,那你應該打電話給你的功能q("e") (即用字符串)

+1

還要注意,OP應該調用'q(「e」)'而不是'q(e)'。 – 2010-06-01 09:05:55

+0

@Aidan Cully:好的,我會更新答案 – nico 2010-06-01 09:23:05

3

你或許應該比「Q」之外的其他功能選擇不同的名稱 - 否則,你將永遠無法完成;)