在R中向函数传递变量名

4

在函数调用中仅传递变量名,并在函数内部将其用作此类变量,是否可能?

伪代码:

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)

并且已经返回

非电子、电子、电子、非电子、非电子、电子、电子、非电子、非电子

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

谢谢, M

1
第四行应为 b<-(w%in%a2|w%in%a7) 或者 b<-w%in%c(a2,a7)。您在代码中使用了 a 作为参数,但实际应为 A - Marek
1
这个问题需要进行清理。示例代码过于特定于一个用户的需求,并包含太多无关的噪音。 - randy
2个回答

5

您应该选择一个不同于"q"的函数名称,否则你永远无法完成 ;)

(注意:这是一个玩笑话,建议遵循命名规范)

4
您可以使用get
例如:
var1 <- get(paste(e, ".2", sep=""))
var2 <- get(paste(e, ".7", sep=""))

编辑:正如Aidan Cully所说,您应该使用字符串调用函数,例如q("e")


2
请注意,OP 应该调用 q("e") 而不是 q(e) - Aidan Cully

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接