Ale*_*lex 3 quotes text r function character
对不起,如果问题不清楚.随意改变它.
所以基本上我试图找到一种方法,以便函数的文本/字符串参数不需要引号.
foo = function(x, y, data){
n1 = length(data[,x])
n2 = length(data[,y])
cat(n1, n1)
}
Run Code Online (Sandbox Code Playgroud)
如果我使用以下代码
data(survey)
foo(Sex, Fold, survey)
Run Code Online (Sandbox Code Playgroud)
我会收到一条错误消息.但是,如果我使用以下内容:
foo("Sex", "Fold", survey)
Run Code Online (Sandbox Code Playgroud)
要么
foo(1, 5, survey)
Run Code Online (Sandbox Code Playgroud)
这个功能会给我我想要的东西.所以我想知道是否有任何方法来构造函数,以便我不需要在列名称周围使用引号.谢谢!
好吧,这将符合以下符号:
foo = function(x,y, data){
n1 <- length(eval(substitute(x),data))
n2 <- length(eval(substitute(y),data))
cat(n1,n2)
}
Run Code Online (Sandbox Code Playgroud)
如果你想要使用带引号的变量名和整数索引,你可以简单地检查x并y在开始时使用一些简单的if-else分支.
但它附带标准警告,eval(substitute())成语可能是危险的使用.(你可能无法总是预见到在某些情况下它不会起作用,你可能没有意识到它什么时候不起作用.)