arithmetic and logical operators

จากบทที่ 1 และบทที่ 2 เราได้เรียนเรื่องชนิดของตัวแปร หรือชนิดของข้อมูลมาแล้วในบทน้ีเรา จะพูดถีงกระบวนการทางคณิตศาสตร์และการเปรียบขนิดต่างๆ ในทางคณิตศาสตร์แล้วชนิดของตัวแปรที่จะนำมาทำการพีชคณิตกันได้ ต้องเป็นตัวเลขเท่านั้น แต่ในภาษาอาร์หรือภาษาอื่นๆ ต่าความจริง (TRUE=1)และความเท็จ(FALSE=0) ก็สามารถนำมาทำการพีชคณิตกันได้

พีชคณิต(Algebra)

พีชคณิตเบื้องต้นที่สำคัญการ การบวก การลบ การคูณ การหาร ถ้าเป็นเป็นตัวแปรเวคเตอร์ 1 มิติ สามารถทำได้พีชคณิตกันได้ทันที เช่น

# กำหนด x = 3
x <- 3  
# กำหนด y = 5
y <- 5  
# การบวก
x+y     
## [1] 8
# ตัวเลข บวกกับ ค่าตรรกะ
x+TRUE  
## [1] 4
# การลบ
x-y     
## [1] -2
# การคูณ
x*y     
## [1] 15
# ค่าตรรกะคูณกับ y
FALSE*y 
## [1] 0
# การหาร
x/y     
## [1] 0.6

การยกกำลัง ทำได้ 2วิธี

# การยกกำลัง 2 แบบแรก
x**2 
## [1] 9
# การยกกำลังอีกแบบ
x^2  
## [1] 9

การหารเอาเศษ(modulus)

# การหารเอาเศษ
y %% x 
## [1] 2

การหารเอาส่วน

# การหารเอาส่วน
y %/% x  
## [1] 1

การทำพีขคณิตกันของตัวแปรเวคเตอร์ 1 มิติกับตัวแปรเวคเตอร์มากกว่าหรือเท่ากับ 2 มิติขึ้นไป ภาษาอาร์ จะมองเห็นตัวแปรเวคเตอร์ 1 มิติเป็นตัวแปรเวคเตอร์ ที่ขนาดมิติเท่ากับตัวที่ทำการพีชคณิตกันอยู่ เช่น

# กำหนดให้ x = 5
x <- 5   
# กำหนดให้ y เป็นเวคเตอร์ตัวเลข 
y <- 1:5 
# ตัวเลขบวกกับเวคเตอร์
x+y    
## [1]  6  7  8  9 10
# ตัวเลขลบกับเวคเตอร์
x-y      
## [1] 4 3 2 1 0
# ตัวเลขคูณกับเวคเตอร์
x*y      
## [1]  5 10 15 20 25
# ตัวเลขหารกับเวคเตอร์
x/y      
## [1] 5.000000 2.500000 1.666667 1.250000 1.000000
# เวคเตอร์หารด้วยตัวเลข
y/x      
## [1] 0.2 0.4 0.6 0.8 1.0
# ตัวเลขยกกำลังเวคเตอร์
x^y      
## [1]    5   25  125  625 3125
# เวคเตอร์ยกกำลังตัวเลข
y^x      
## [1]    1   32  243 1024 3125
# ตัวเลขหารเอาเศษด้วยเวคเตอร์
x %% y   
## [1] 0 1 2 1 0
 # เวคเตอร์หารเศษด้วยตัวเลข
y %% x  
## [1] 1 2 3 4 0
# ตัวเลขหารเอาส่วนด้วยเวตเตอร์
x %/% y  
## [1] 5 2 1 1 1
# เวคเตอร์หารเอาส่วนด้วยตัวเลข
y %/% x 
## [1] 0 0 0 0 1

ถ้าเวคเตอร์ทั้งสองมีขนาดมิติไม่เท่ากับหนึ่งและมีขนาดมิติไม่เท่ากัน ก็สามารถทำการพีชคณิตกันได้ โดยเวคเตอร์ใดที่มีมิติน้อยกว่า จะถูกสร้างใหม่ให้มีมิติเท่ากับเวคเตอร์อีกตัวที่มีมิติมากกว่า โดยการนำค่าเวคเตอร์ของตัวเองมาต่อท้ายไปเรื่อยๆจนกว่าจะมีขนาดมิติเท่ากับตัวที่มากกว่านั้นเอง และจะได้รับข้อความการเตือนจากภาษาอาร์

# สร้างเวคเตอร์ x 
x<-1:2  
# สร้าวเวคเตอร์ y 
y<-3:5  
x+y
## Warning in x + y: longer object length is not a multiple of shorter object
## length
## [1] 4 6 6
x-y
## Warning in x - y: longer object length is not a multiple of shorter object
## length
## [1] -2 -2 -4
x/y
## Warning in x/y: longer object length is not a multiple of shorter object length
## [1] 0.3333333 0.5000000 0.2000000
x*y
## Warning in x * y: longer object length is not a multiple of shorter object
## length
## [1] 3 8 5
x^y
## Warning in x^y: longer object length is not a multiple of shorter object length
## [1]  1 16  1

โดยการพีชคณิตทั้งหมดนี้จะกระทำโดย ค่าในแต่ละเวคเตอร์ที่ตำแหน่งมิติเดียวกัน

พีชคณิตของเมตริกซ์(matrix algebra) ด้วยอาร์

สำหรับเวตเตอร์ 1 มิติสามารถสามารถทำการพีชคณิตกับเมทริกซได้ \[A=\begin{bmatrix}1&3\\2&4 \end{bmatrix}\]

A <-matrix(1:4,ncol= 2)
A
##      [,1] [,2]
## [1,]    1    3
## [2,]    2    4

การบวก

\[\begin{bmatrix} 1&3\\2&4 \end{bmatrix}+2 = \begin{bmatrix} 1+2&3+2\\2+2&4+2 \end{bmatrix}=\begin{bmatrix}3&5\\4&6 \end{bmatrix}\]

A+2
##      [,1] [,2]
## [1,]    3    5
## [2,]    4    6

การลบ

\[\begin{bmatrix} 1&3\\2&4 \end{bmatrix}-2 = \begin{bmatrix} 1-2&3-2\\2-2&4-2 \end{bmatrix}=\begin{bmatrix} -1&1\\0&2 \end{bmatrix}\]

A-2
##      [,1] [,2]
## [1,]   -1    1
## [2,]    0    2

การคูณ

\[2\times\begin{bmatrix} 1&3\\2&4 \end{bmatrix} = \begin{bmatrix} 2\times1&2\times3\\2\times2&2\times4 \end{bmatrix}=\begin{bmatrix}2&6\\4&8\end{bmatrix}\]

2*A
##      [,1] [,2]
## [1,]    2    6
## [2,]    4    8

การหาร

\[\dfrac{2}{\begin{bmatrix} 1&3\\2&4 \end{bmatrix}} = \begin{bmatrix} \dfrac{2}{1}&\dfrac{2}{3}\\ \dfrac{2}{2}&\dfrac{2}{4}\\ \end{bmatrix}\]

2/A
##      [,1]      [,2]
## [1,]    2 0.6666667
## [2,]    1 0.5000000

การยกกำลัง

\[\begin{bmatrix} 1&3\\2&4\end{bmatrix}^2 = \begin{bmatrix} 1&3\\2&4\end{bmatrix}\times \begin{bmatrix} 1&3\\2&4\end{bmatrix}= \begin{bmatrix} 7&15\\10&22 \end{bmatrix}\]

A^2
##      [,1] [,2]
## [1,]    1    9
## [2,]    4   16

ไม่ใช่การยกดำลังแบบที่เราใช้ในทางคณิตศาสตร์ ต้องใช้ชุดคำสั่งจาก package expm

library(expm)
## Loading required package: Matrix
## 
## Attaching package: 'expm'
## The following object is masked from 'package:Matrix':
## 
##     expm
A%^%2
##      [,1] [,2]
## [1,]    7   15
## [2,]   10   22

\[2^{\begin{bmatrix} 1&3\\2&4 \end{bmatrix}} = \begin{bmatrix} 2^1& 2^3\\ 2^2 &2^4 \end{bmatrix}\]

2^A
##      [,1] [,2]
## [1,]    2    8
## [2,]    4   16

ถ้าเมทริกซ์ทั้งสองมีขนาดมิติเท่ากัน ก็สามารถทำได้บวกลบได้แบบเมทริกซ์ทั่วไป แต่สำหรับการคูณและการหารต้องระวังเพราะอาจจะไม่ใช่การคูณและหารแบบที่เราเคยศึกษากันมา \[B=\begin{bmatrix}5&7\\6&8\end{bmatrix}\]

B<-matrix(5:8,nrow=2)
B
##      [,1] [,2]
## [1,]    5    7
## [2,]    6    8

การบวก

\[\begin{bmatrix}1&3\\2&4 \end{bmatrix}+ \begin{bmatrix}5&7\\6&8 \end{bmatrix}= \begin{bmatrix}1+5&3+7\\2+6&4+8 \end{bmatrix}\]

A+B
##      [,1] [,2]
## [1,]    6   10
## [2,]    8   12

การลบ

\[\begin{bmatrix}1&3\\2&4 \end{bmatrix}- \begin{bmatrix}5&7\\6&8 \end{bmatrix}= \begin{bmatrix}1-5&3-7\\2-6&4-8 \end{bmatrix}\]

A-B
##      [,1] [,2]
## [1,]   -4   -4
## [2,]   -4   -4

การคูณ

\[\begin{bmatrix}1&3\\2&4 \end{bmatrix}\times \begin{bmatrix}5&7\\6&8 \end{bmatrix}= \begin{bmatrix}1\times 5+3\times 6 & 1\times 7+3\times 8\\ 2\times 5+4\times 6 & 2\times 7+4\times 8\end{bmatrix}=\begin{bmatrix}23&31\\34&46 \end{bmatrix}\]

A*B
##      [,1] [,2]
## [1,]    5   21
## [2,]   12   32

ไม่ใช่การคูณกับแบบเมตริกซ์ที่เราเรียนมาต้องใช้คำสั่งดังนี้

A%*%B
##      [,1] [,2]
## [1,]   23   31
## [2,]   34   46

การหาร

\[\dfrac{\begin{bmatrix}1&3\\2&4 \end{bmatrix}}{ \begin{bmatrix}5&7\\6&8 \end{bmatrix}}=\begin{bmatrix} \dfrac{1}{5}&\dfrac{3}{7}\\ \dfrac{2}{6}&\dfrac{4}{8} \end{bmatrix}\]

A/B
##           [,1]      [,2]
## [1,] 0.2000000 0.4285714
## [2,] 0.3333333 0.5000000

ในพีชคณิตเมทริกซ์ ไม่มีการหารกันแบบเมทริกซ์ ในโปรแกรมอาร์จะเป็นการหารระหว่างค่าในเมทริกซ์ที่อันดับแถวและสดมภ์ตรงกัน

ค่าดีเทอร์มิแนนท์และอินเวอร์สเมตริกซ์(determinant and inverse matrix)

เมทริกซ์จะมีอินเวอร์สได้ จะต้องเป็นเมทริกซ์ที่จำนวนแถวและสดมภ์เท่ากันเท่านั้นและดีเทอร์มิแนนท์ต้องไม่เท่ากับศูนย์ \[det\left(A\right)=\begin{vmatrix}1 &3\\2&4\end{vmatrix}=1\times 4-2\times 3=-2\]

det(A)
## [1] -2

\[A^{-1}\]

solve(A)
##      [,1] [,2]
## [1,]   -2  1.5
## [2,]    1 -0.5

เมทริกซ์ผกผัน(transpose matrix)

\[A^T=\begin{bmatrix} 1&3\\2&4 \end{bmatrix}^T=\begin{bmatrix} 1&2\\3&4 \end{bmatrix}\]

t(A)
##      [,1] [,2]
## [1,]    1    2
## [2,]    3    4

เมทริกซ์เอกลักษณ์(identity matrix)

diag(2)
##      [,1] [,2]
## [1,]    1    0
## [2,]    0    1
diag(4)
##      [,1] [,2] [,3] [,4]
## [1,]    1    0    0    0
## [2,]    0    1    0    0
## [3,]    0    0    1    0
## [4,]    0    0    0    1

ในกรณีที่ต้องการดึงค่าแนวทะแยงออกมาจากเมตริกซ์ออกมาเป็นเวคเตอร์ก็สามารถทำได้ โดยใช้คำสั่ง diag() เช่นเดียวกัน

diag(A)
## [1] 1 4
diag(B)
## [1] 5 8

ฟังก์ชันอื่นทางคณิตศาสตร์ที่สำคัญ

ฟังก์ชันทางคณิตศาสตร์ในภาษาอาร์ ถ้าข้อมูลเป็นเวคเตอร์หรือเมทริกซ์ผลลัพธ์ที่ได้จะออกมาเป็นเวคเตอร์หรือเมตริกซ์ทีมีมิติเหมือนเดิม เช่น

  • abs() คือฟังก์ชันค่าสัมบูรณ์

  • sqrt() คือค่ารากที่ 2

  • sin(), cos(), tan() คือค่าฟังก์ชันไซน์ในตรีโกณมิติ

  • exp() คือการยกกำลังของฟังก์ชันเอกโพเนนเชียล

  • log() คือฟังก์ชันเลขฐานธรรมชาติ

  • factorial() แฟกทอเรียล

  • permutation วิธีการเรียงสับเปลี่ยน

  • combination วิธีการเรียงจัดหมู่ เป็นต้น

ค่าสัมบูรณ์

\[\begin{aligned}|x|=\begin{cases}-x,~&x<0\\x,~&x\geq 0 \end{cases}\end{aligned}\]

C<-c(-1,2,-4,-6,7)
C
## [1] -1  2 -4 -6  7
abs(C)
## [1] 1 2 4 6 7
abs(A)
##      [,1] [,2]
## [1,]    1    3
## [2,]    2    4

ค่ารากที่ 2

\[\sqrt{x}\]

D<- 2:5
sqrt(D)
## [1] 1.414214 1.732051 2.000000 2.236068
sqrt(A)
##          [,1]     [,2]
## [1,] 1.000000 1.732051
## [2,] 1.414214 2.000000

ค่าเลขฐานธรรมชาติ

\[\log_e(x)\text{ หรือ} \ln(x)\]

log(2)
## [1] 0.6931472
log(D)
## [1] 0.6931472 1.0986123 1.3862944 1.6094379
log(A)
##           [,1]     [,2]
## [1,] 0.0000000 1.098612
## [2,] 0.6931472 1.386294

เอกโพเนนเชียล

\[\exp(x)\text{ หรือ } e^x \]

exp(2)
## [1] 7.389056
exp(D)
## [1]   7.389056  20.085537  54.598150 148.413159
exp(A)
##          [,1]     [,2]
## [1,] 2.718282 20.08554
## [2,] 7.389056 54.59815

ฟังก์ชันตรีโกณมิติ (Trigonometric function)

\[\sin(x),\cos(x),tan(x)\]

sin(2)
## [1] 0.9092974
cos(D)
## [1] -0.4161468 -0.9899925 -0.6536436  0.2836622
tan(A)
##           [,1]       [,2]
## [1,]  1.557408 -0.1425465
## [2,] -2.185040  1.1578213

แฟกทอเรียล

นิยาม คือ \[n! =\prod_{i=1}^n i=1\times 2\times 3\cdots \times n \] หรือเขียนในอีกรูปแบบคือ \[ n!=n\times (n-1)!\] ค่าที่สำคัญต้องจำคือ \[ 0!=1\] คำสั่งในอาร์ คือ

# 5!=5x4x3x2x1=120
factorial(5)
## [1] 120

combination การเรียงจัดหมู่

มีนิยามดังนี้ \[C_{n,k}=\begin{pmatrix}n\\k\end{pmatrix}=\dfrac{n!}{(n-k)!\times k!} \] ตัวอย่าง \[C_{5,3}=\begin{pmatrix}5\\3\end{pmatrix}=\dfrac{5!}{(5-3)!\times 3!}=\dfrac{5!}{2!\times 3!}=10 \] คำสั่งในอาร์ คือ

choose(5,3)
## [1] 10

permutation การเรียงสับเปลี่ยน

มีนิยามดังนี้ \[P_{n,k}=\dfrac{n!}{(n-k)!} \] ตัวอย่าง \[P_{5,3}=\dfrac{5!}{(5-3)!}=60 \] การเรียงสับเปลี่ยนนี้ไม่มีคำสั่งโดยตรง ดังนั้นให้ประยุกต์คำสั่งในอาร์ดังนี้

choose(5,3)*factorial(3)
## [1] 60

ค่าพาย(\(\pi\))

pi
## [1] 3.141593

การดำเนินการเปรียบเทียบกันโดยใช้ตรรกศาสตร์

มีเป้าหมายเพื่อต้องการที่จะเปรียบเทียบค่าระหว่างกันว่าเป็นจริงหรือเป็นเท็จ และสามารถนำค่าความจริงที่ได้มาใช้ประโยชน์ได้อย่างมากมายจากตัวอย่างต่อไปนี้ โดยการเปรียบเทียบมีอยู่ดังนี้คือ

  • มีน้อยกว่า ใช้เครื่องหมาย <

  • มีค่าน้อยกว่าหรือเท่าเท่า ใช้เครื่องหมาย <=

  • มีค่ามากกว่า ใช้เครื่องหมาย >

  • มีค่ามากกว่าหรือเท่ากับ ใช้เครื่องหมาย >=

  • มีค่าเท่ากัน ใช้เครื่องหมาย ==

  • มีค่าไม่เท่ากัน ใช้เครื่องหมาย !=

เช่นการเปลียนเทียบกันของเวคเตอร์

# 2 มากกว่า 3?
2 > 3
## [1] FALSE
# 5 น้อยกว่า 4?
5 < 4
## [1] FALSE
# 6 น้อยกว่าหรือเท่ากับ 7?
6<= 7
## [1] TRUE
# log(2) มากกว่าหรือเท่ากับ log(1)?
log(2)>=log(1)
## [1] TRUE
# TRUE เท่ากับ 1?
TRUE==1
## [1] TRUE
# FALSE ไม่เท่ากับ F
FALSE != F
## [1] FALSE

นักเรียนชายและหญิงมีอายุอยู่ระหว่าง 12-18 ปีโดยสุ่มขึ้นมา 10 คน ให้อายุนักเรียนชายมีชื่อตัวแปรว่า Male_Age และอายุนักเรียนหญิงมีชื่อตัวแปรว่า Female_Age

Age<-12:18
set.seed(100) # เป็นคำสั่งที่ทำให้หารสุ่มใหม่ทุกครั้ง จะได้ค่าเหมือนเดิมทุกครั้ง
Male_Age   <- sample(Age,10,replace=TRUE) # สุ่มแบบคืนที่
Male_Age
##  [1] 13 18 17 14 12 13 17 15 18 17
Female_Age <- sample(Age,10,replace=TRUE) # สุ่มแบบคืนที่
Female_Age
##  [1] 17 15 18 17 13 18 18 18 14 13

ถ้าต้องทราบว่ามีนักเรียนชายที่อายุมากกว่า 15 ปีมีอายุเท่าไหร่บ้าง

Male_Age[Male_Age > 15]
## [1] 18 17 17 18 17

หรือจำนวนนักเรียนหญิงที่อายุน้อยกว่า 14 ปีมีอายุเท่าไหร่และมีกี่คน สามารถทำได้ดังนี้

Female_Age[Female_Age < 14]
## [1] 13 13
sum(Female_Age < 14)
## [1] 2

ถ้าต้องการเปรียบกันว่าอายุนักชายคนที่ 1มีอายุมากกว่านักเรียนหญิงคนที่ 1 จนถึง นักเรียนชายคนที่ 10 มีอายุมากกว่านักเรียนหญิงคนที่ 10 ทำได้ดังนี้

Male_Age > Female_Age
##  [1] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE

การเช็คชนิดของค่าในตัวแปร

ถ้าต้องการเช็คว่า ค่าในตัวแปร เป็น ตัวอักษร หรือตัวเลข หรือตัวแปรชนิด factor หรือ ค่าในกรอบข้อมูลมีค่าหรือไม่(NA) หรือเป็นค่าว่าง(NULL) ทำได้ดังนี้

A <- 2
is.character(A)  # A เป็นตัวอักษรใช่หรือไม่
## [1] FALSE
is.numeric(A)    # A เป็นตัวตัวเลขใช่ฟรือไม่
## [1] TRUE
B <- "2"
is.character(B)  # B เป็นตัวอักษรใช่หรือไม่
## [1] TRUE
C <- NA
is.na(C)         # C มีค่าเป็น "NA" ใช่หรือไม่
## [1] TRUE
D <- NULL
is.null(D)       # D มีค่าเป็น NUll ใช่หรือไม่
## [1] TRUE
E<-factor(c("a","b","c"))
is.factor(E)    # E เป็นแฟกเตอร์ใช่หรือไม่ 
## [1] TRUE

การเช็คค่านี้ จะให้ค่าออกมาเป็นค่าความจริง TRUE หรือ FALSE

การดำเนินการด้วยเซ็ต

ในอาร์จะใช้ package “dplyr” หรือจะจะใช้ “tidyverse” ก็ได้

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union

ส่วนรวม(union)

ให้ \(A\) และ \(B\) เป็นเซตโดยที่ \(A,B\in U\) เราเรียก \(U\) ว่าเอกภพสัมพัทธ์ ส่วนรวมมีนิยามดัวนี้ \[A\cup B=\lbrace x\in U\mid x\in A \vee x\in B \rbrace\] ตัวอย่าง ให้ \(A=\lbrace 1,2,3,4\rbrace, B=\lbrace 3,4,5,6\rbrace\) ดังนั้น \[A\cup B =\lbrace 1,2,3,4,5,6\rbrace\] คำสั่งในอาร์คือ union

A<-1:4
B<-3:6
union(A,B)
## [1] 1 2 3 4 5 6

ส่วนร่วม(intersection)

ให้ \(A\) และ \(B\) เป็นเซตโดยที่ \(A,B\in U\) เราเรียก \(U\) ว่าเอกภพสัมพัทธ์ ส่วนร่วมมีนิยามดัวนี้ \[A\cup B=\lbrace x\in U\mid x\in A \vee x\in B \rbrace\] ตัวอย่าง จากข้างบนและ \(C=\lbrace 6,7,8,9\rbrace\) ถ้าหา \[\begin{align*} A\cap B&=\lbrace 3,4\rbrace\\ A\cap C&=\lbrace \rbrace \text{ หรือ }\emptyset\\ B\cap C&=\lbrace 6\rbrace \end{align*}\] คำสั่งในอาร์คือ intersect

C<-6:9
intersect(A,B)
## [1] 3 4
intersect(A,C)
## integer(0)
intersect(B,C)
## [1] 6

หมายเหตุ เนื่องจาก \(A\) และ \(C\) เป็นเวคเตอร์จำนวน เมื่อส่วนร่วมเท่ากับเซตว่างในอาร์ก็คือ integer(0) ให้ \(D=\lbrace a,b,c\rbrace\) เป็นตัวอักษร ดังนั้น

D<-c("a","b","c")
intersect(A,D)
## character(0)

character(0) คือก็เซตว่างเช่นกัน

เซตผลต่าง (set difference)

เซตผลต่างสามารถนิยามได้ดังนี้ \[A\setminus B =\lbrace x\in U\mid x \in A \vee x \notin B\rbrace\] คำสั่งในอาร์คือ setdiff

setdiff(A,B)
## [1] 1 2
setdiff(B,A)
## [1] 5 6
setdiff(A,D)
## [1] 1 2 3 4
setdiff(D,A)
## [1] "a" "b" "c"

เชตที่เท่ากัน (equal set)

เป็นการพิจารณาว่าเซต \(A\) และ \(B\) มีสมาชิกเหมือนกันทั้งหมดหรือไม่นิยามดังนี้ \[A=B\Rightarrow\lbrace a,b\in U \mid\forall a\in A \Rightarrow a\in B \vee \forall b\in B \Rightarrow b\in A\] ในอาร์ จะเป็นการเปรียบทางตรรกะศาสตร์ ระหว่างเซต โดยให้ค่าของมาเป็น TRUE หรือ FALSE โดยใช้คำสั่ง setequal

setequal(A,A) # เซต A=A ?
## [1] TRUE
setequal(A,B) # เซต A=B ?
## [1] FALSE
setequal(A,C) # เซต A=C ?
## [1] FALSE

การตรวจสอบความเป็นสมาชิก

ถ้าเราสนใจว่า สมาชิกบางตัวในเซตที่เราสนใจหรือไม่? ผลของการตรวจสอบ จะให้ค่าเป็น TRUE หรือ FALSE โดยใช้คำสั่งดังนี้

# 2 เป็นสมาชิกของ a หรือไม่?
2 %in% A 
## [1] TRUE
# 2 เป็นสมาชิกของ a หรือไม่? 3 เป็นสมาชิกของ a หรือไม่?
c(2,3) %in% A
## [1] TRUE TRUE
# ตัวอักษร a อยู่ใน D หรือไม่
"a" %in% D
## [1] TRUE