Computer Science, asked by shellynagpal577, 2 months ago

What is the difference between the x=15 and x==15? *​

Answers

Answered by babyboy11
0

Answer:

It depends on context as to what = means. == is always for testing equality.

= can be

in most cases used as a drop-in replacement for <-, the assignment operator.

> x = 10

> x

[1] 10

used as the separator for key-value pairs used to assign values to arguments in function calls.

rnorm(n = 10, mean = 5, sd = 2)

Because of 2. above, = can't be used as a drop-in replacement for <- in all situations. Consider

> 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

Now some would consider rnorm(N <- 10, mean = 5, sd = 2) poor programming, but it is valid and you need to be aware of the differences between = and <- for assignment.

== is always used for equality testing:

> 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

Do be careful with == too however, as it really means exactly equal to and on a computer where floating point operations are involved you may not get the answer you were expecting. For example, from ?'==':

> 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

where all.equal() tests for equality allowing for a little bit of fuzziness due to loss of precision/floating point operations.

Similar questions