gpt4 book ai didi

r - = 和 == 有什么区别?

转载 作者:行者123 更新时间:2023-12-02 05:23:55 26 4
gpt4 key购买 nike

=有什么区别和 == ?我发现双等号允许我的脚本运行而一个等号产生错误消息的情况。我应该什么时候使用 ==而不是 = ?

最佳答案

这取决于上下文 =方法。 ==总是用于测试相等性。
=

  • 大多数情况下用作 <- 的直接替代品, 赋值运算符。
    > x = 10
    > x
    [1] 10
  • 用作键值对的分隔符,用于在函数调用中为参数赋值。
    rnorm(n = 10, mean = 5, sd = 2)

  • 由于以上2., =不能用作 <- 的替代品在所有情况下。考虑
    > rnorm(N <- 10, mean = 5, sd = 2)
    [1] 4.893132 4.572640 3.801045 3.646863 4.522483 4.881694 6.710255 6.314024
    [9] 2.268258 9.387091
    > rnorm(N = 10, mean = 5, sd = 2)
    Error in rnorm(N = 10, mean = 5, sd = 2) : unused argument (N = 10)
    > N
    [1] 10

    现在有人会考虑 rnorm(N <- 10, mean = 5, sd = 2)糟糕的编程,但它是有效的,您需要了解 = 之间的差异和 <-为分配。
    ==总是用于相等性测试:
    > set.seed(10)
    > logi <- sample(c(TRUE, FALSE), 10, replace = TRUE)
    > logi
    [1] FALSE TRUE TRUE FALSE TRUE TRUE TRUE TRUE FALSE TRUE
    > logi == TRUE
    [1] FALSE TRUE TRUE FALSE TRUE TRUE TRUE TRUE FALSE TRUE
    > seq.int(1, 10) == 5L
    [1] FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE

    小心 ==然而,因为它实际上意味着完全等于并且在涉及浮点运算的计算机上,您可能无法得到您期望的答案。例如,来自 ?'==' :
    > x1 <- 0.5 - 0.3
    > x2 <- 0.3 - 0.1
    > x1 == x2 # FALSE on most machines
    [1] FALSE
    > identical(all.equal(x1, x2), TRUE) # TRUE everywhere
    [1] TRUE

    哪里 all.equal()由于精度/浮点运算的损失,相等性测试允许有点模糊。

    关于r - = 和 == 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28176650/

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