call
位于 base
包(package)。 说明
创建或测试 mode
"call"
(或 "("
,请参阅详细信息)的对象。
用法
call(name, ...)
is.call(x)
as.call(x)
参数
name |
命名要调用的函数的非空字符串。 |
... |
参数是调用的一部分。 |
x |
任意的R对象。 |
细节
call
-
返回未计算的函数调用,即由应用于给定参数的命名函数组成的未计算的表达式(
name
必须是给出要调用的函数名称的字符串)。请注意,尽管该调用未求值,但参数...
已求值。call
是原语,因此第一个参数被视为name
,其余参数作为构造调用的参数:如果命名第一个参数,则名称必须部分匹配name
。 is.call
-
用于确定
x
是否是一个调用(即模式"call"
或"("
)。注意-
is.call(x)
严格等同于typeof(x) == "language"
。 -
is.language()
对于调用也适用(但对于symbol
和expression
也适用,其中is.call()
为 false)。
-
as.call(x)
:-
模式
"list"
的对象可以强制为模式"call"
。列表的第一个元素成为调用的函数部分,因此应该是函数或函数的名称(作为符号;字符串不行)。如果您考虑使用
as.call(<string>)
,请考虑使用str2lang(*)
,它是parse(text=*)
的高效版本。请注意,call()
和as.call()
在适用时比这些基于parse()
的方法更可取。
这三个都是primitive 函数。
as.call
是通用的:您可以编写方法来处理特定类的对象,请参阅 InternalMethods 。
警告
call
不应被用来尝试规避对 .Internal
和其他非 API 调用的使用限制。
例子
is.call(call) #-> FALSE: Functions are NOT calls
## set up a function call to round with argument 10.5
cl <- call("round", 10.5)
is.call(cl) # TRUE
cl
identical(quote(round(10.5)), # <- less functional, but the same
cl) # TRUE
## such a call can also be evaluated.
eval(cl) # [1] 10
class(cl) # "call"
typeof(cl)# "language"
is.call(cl) && is.language(cl) # always TRUE for "call"s
A <- 10.5
call("round", A) # round(10.5)
call("round", quote(A)) # round(A)
f <- "round"
call(f, quote(A)) # round(A)
## if we want to supply a function we need to use as.call or similar
f <- round
## Not run: call(f, quote(A)) # error: first arg must be character
(g <- as.call(list(f, quote(A))))
eval(g)
## alternatively but less transparently
g <- list(f, quote(A))
mode(g) <- "call"
g
eval(g)
## see also the examples in the help for do.call
参考
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
也可以看看
do.call
用于通过名称和参数列表调用函数; Recall
用于函数的递归调用;进一步is.language
,expression
,function
。
相关用法
- R callCC 调用当前延续
- R cat 连接并打印
- R capabilities 此 R 版本的报告函数
- R chartr 字符翻译和装箱
- R chol2inv Cholesky(或 QR)分解的逆分解
- R cumsum 累积和、乘积和极值
- R col 列索引
- R character 字符向量
- R c 将值组合到向量或列表中
- R conditions 状况处理和恢复
- R cut 将数字转换为因子
- R class 对象类
- R connections 操作连接的函数(文件、URL...)
- R comment 查询或设置“评论”属性
- R complex 复数和基本函数
- R chooseOpsMethod 选择适当的操作方法
- R colSums 形成行和列的总和及平均值
- R chol 乔列斯基分解
- R commandArgs 提取命令行参数
- R cbind 按行或列组合 R 对象
- R crossprod 矩阵叉积
- R curlGetHeaders 从 URL 中检索标头
- R charmatch 部分字符串匹配
- R chkDots 警告调用者的“...”中存在无关参数
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Function Calls。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。