gpt4 book ai didi

r - == 与公式的奇怪行为

转载 作者:行者123 更新时间:2023-12-05 01:26:18 24 4
gpt4 key购买 nike

下面的内容让我有些疑惑。我有两个公式,想检查它们是否相同。在这里,我希望返回 FALSE。

fm1 <- formula(schades ~ termijn + zipcode + provincie + regionvormgemeente + energielabel + trede)
fm2 <- formula(schades ~ termijn + zipcode + provincie + regionvormgemeente + energielabel)
fm1 == fm2
#> [1] TRUE

identical(fm1, fm2)
#> [1] FALSE

fm1 == fm2 返回 TRUE 的原因是什么?

reprex package 创建于 2021-12-17 (v2.0.1)

最佳答案

== 旨在比较原子向量中的值,而不是公式。

此外,请参阅 ?== 中的以下示例:

x1 <- 0.5 - 0.3
x2 <- 0.3 - 0.1
x1 == x2 # FALSE on most machines
isTRUE(all.equal(x1, x2)) # TRUE everywhere

应用于您的示例,您可以找到:

    > fm1 <- formula(schades ~ termijn + zipcode + provincie + regionvormgemeente + energielabel + trede)
> fm2 <- formula(schades ~ termijn + zipcode + provincie + regionvormgemeente + energielabel)
> fm1 == fm2
[1] TRUE
>
> all.equal(fm1, fm2)
[1] "formulas differ in contents"
> isTRUE(all.equal(fm1,fm2))
[1] FALSE

但显然减少预测变量的数量会返回预期的结果。它只是说明 == 不应该用于这种类型的比较,因为它的行为不连贯:

> fm1 <- formula(schades ~ termijn + zipcode + provincie)
> fm2 <- formula(schades ~ termijn + zipcode)
> fm1 == fm2
[1] FALSE
> isTRUE(all.equal(fm1,fm2))
[1] FALSE

关于r - == 与公式的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70392925/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com