如何测试对象是否是以R为基数的公式?

如何测试对象是否是以R为基数的公式?,r,R,R有许多用于测试对象类型的助手,例如,is.character(x) (奇怪地缺失)Is.formula(x)是否有等价物 (注:我发现至少有一个包在BaseR之外实现了此功能)根据我的评论,您可以: is.formula <- function(x){ inherits(x,"formula") } is.formula您可以使用rlang的文档中的rlang::is\u formula()或rlang::is\u bare\u formula(): is\u formula()

R有许多用于测试对象类型的助手,例如,
is.character(x)

(奇怪地缺失)
Is.formula(x)
是否有等价物


(注:我发现至少有一个包在BaseR之外实现了此功能)

根据我的评论,您可以:

is.formula <- function(x){
   inherits(x,"formula")
}

is.formula您可以使用rlang的文档中的
rlang::is\u formula()
rlang::is\u bare\u formula()

is\u formula()
测试
x
是否是对
~
的调用
is\u bare\u formula()
测试除“formula”之外,
x
不会继承任何其他内容

inherits()
是一种常见的方法,但是如果我们想要严格,我们应该关注调用,而不是类属性,正如
rlang::is_formula()
所做的那样,我在这里提出了一个基本版本:

a_公式[1]错误

由(v0.3.0)创建于2019-11-10。当
interits(x,“formula”)
为真时,
as.formula
仅返回其参数,因此您只需使用它。