How to compare the values of two vectors in R?
How to compare the values of two vectors in R?, Using match() and %in% we can compare vectors
Today, we’ll talk about comparing two R vectors to see what components (values).
Here, we have two choices:
The indexes of common elements are returned by the match () function in R.
- Indicating if a value from the first vector was present in the second.
- The percent in percent operation produces a vector of True or False answers.
Finding Values in Vectors using R Match
Starting with the R match() function, let’s go on.
Value<-c(15,13,12,14,12,15,30)
The first position of the matching value is returned by the r match example.
match(12, Value) [1] 3
Example of an r match with multiple values
match (c(13,12), Value) [1] 2 3
The initial position of each of the two values is returned by the R match function when we pass it a vector of multiple values.
Operator – Boolean Equivalent for percent in percent
Do you only require a True/False response?
Use the percent in percent operator, if possible. Similar operations are carried out, and the result is returned as a Boolean indicator indicating if the value is present.
For an example of the R percent in percent operator
by utilizing the percent in percent operator, check for a single value.
14 %in% Value [1] TRUE
Utilize the percent in percent operator to verify a vector of multiple values.
c(10, 12) %in% Value [1] FALSE TRUE
what values the percent in percent operator treats when it can’t
c(10, 12, 14) %in% Value [1] FALSE TRUE TRUE
Summary
The percent in percent operator and R Match; We can compare the values of two vectors using these two tools.
Interesting!
“compare” is a very broad concept. Here are some more ways to use basic R functions to compare vectors — first for character vectors, then for numeric.
## create two character vectors
> L1 L1
[1] “g” “z” “n” “g” “g”
>
> L2
## what values do they have in common?
> intersect(L1,L2)
[1] “g” “z”
## what values are in L1 but not in L2
> setdiff(L1, L2)
[1] “n”
## in L2 but not in L1
> setdiff(L2, L1)
[1] “u” “p” “x” “l” “f” “r”
>
## numeric
> x y
> cbind(x=range(x), y=range(y))
x y
[1,] 0.7332656 6.40427
[2,] 22.7891377 14.78329
## if I want to put this in a report, row names will be useful
> tmp rownames(tmp) tmp
x y
min 0.7332656 6.40427
max 22.7891377 14.78329
## R defaulted to too many decimal places. Show fewer:
> signif(tmp,3)
x y
min 0.733 6.4
max 22.800 14.8
## which inspires:
> round( cbind(quantile(x), quantile(y)) ,2)
[,1] [,2]
0% 0.73 6.40
25% 6.88 9.11
50% 8.78 10.58
75% 12.46 12.27
100% 22.79 14.78
## and R has all the tools needed to build a simple graphical comparison
> d1 d2 xrng yrng plot(d1, xlim=xrng, ylim=yrng)
> lines(d2, col=’red’)
## still needs a legend, and better title, axis labels, and such
## but this is enough to get started
Thank You