Передать имя переменной в функцию в r - PullRequest
4 голосов
/ 01 июня 2010

Можно ли передать только имя переменной в вызове функции и использовать его как таковой в функции ??

псевдокод:

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)

и вернулись

не-е, е, е, не-е, не-е, е, е, не-е, не-е

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

3 голосов
/ 01 июня 2010

Вам, вероятно, следует выбрать другое имя для вашей функции, отличное от "q" - иначе вы никогда не сможете завершить;)

3 голосов
/ 01 июня 2010

Вы можете использовать get

Например,

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

РЕДАКТИРОВАТЬ: как правильно говорит Эйдан Калли, тогда вы должны вызывать свою функцию как q("e") (то есть со строкой)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...