如何更改函数参数名称。对于使用替代品的例子,我可以改变函数的参数值或函数名称:更改函数参数名称
substitute(quote(F(x= A)), list(A= quote(B), F= quote(G)))
## result
quote(G(x = B))
但这不起作用:
substitute(quote(F(x= A)), list(x= quote(y)))
## result
quote(F(x = A))
# EDIT(@Joran这里是真实的例子,也许不那么真实但非常接近,我在做什么)
#
library("multcomp")
data("mtcars")
mtcars$gear <- factor(mtcars$gear)
mtcars$cyl <- factor(mtcars$cyl)
xv <- c("gear","cyl")
for(v in xv){
fo <- as.formula(paste("mpg",v,sep="~"))
fit <- lm(fo,data=mtcars)
print(eval(substitute(summary(glht(fit,linfct= mcp(vn="Dunnett"))),list(vn=v))))
}
我不会做任何。你真的想做什么?通常在R中,你可能会做'foo < - 'G'; bar < - 'x'; do.call(foo,bar)'选择一个函数及其基于字符串对象的参数。 –
你真的想要做什么? – joran
@ Carl&Joran说了什么(“你真的想做什么?!”)。我会通过'formals()'自己改变参数... –