styler
packagescale()
As mentioned above, R recognizes logical values as a distinct type. R provides all the conventional infix logical operators:
1 == 1 # equality
1] TRUE
[1 != 1 # inequality
1] FALSE
[1 < 2 # less than
1] TRUE
[1 > 2 # greater than
1] FALSE
[1 <= 2 # less than or equal to
1] TRUE
[1 >= 2 # greater than or equal to
These operators also work on vectors, albeit with the same caveats about vector length as noted earlier:
<- c(1,2,3)
x == 2
x 1] FALSE TRUE FALSE
[< 1
x 1] FALSE FALSE FALSE
[< 3
x 1] TRUE TRUE FALSE
[c(1,2) == c(1,3)
1] TRUE FALSE
[c(1,2) != c(1,3)
1] FALSE TRUE
[c(1,2) == c(1,2,3)
1] TRUE TRUE FALSE
[:
Warning messagec(1, 2, 3) == c(1, 2) :
In longer object length is not a multiple of shorter object length
R also provides many functions of the form is.X
where X
is some type or
condition (recall that .
is not a special character in R):
is.numeric(1) # is the argument numeric?
1] TRUE
[is.character(1) # is the argument a string?
1] FALSE
[is.character("ABC")
1] TRUE
[is.numeric(c(1,2,3)) # recall a vector has exactly one type
1] TRUE
[is.numeric(c(1,2,"3"))
1] FALSE
[is.na(c(1,2,NA))
1] FALSE FALSE TRUE [