วิธีใช้ตัวดำเนินการ %in% ใน r (พร้อมตัวอย่าง)


ตัวดำเนินการ %in% ใน R ช่วยให้คุณสามารถกำหนดได้ว่าองค์ประกอบใดเป็นของเวกเตอร์หรือกรอบข้อมูล

บทช่วยสอนนี้มีสามตัวอย่างของการใช้คุณสมบัตินี้ในสถานการณ์ที่แตกต่างกัน

ตัวอย่างที่ 1: การใช้ %in% กับเวกเตอร์

เราสามารถใช้ตัวดำเนินการ %in% เพื่อกำหนดจำนวนองค์ประกอบของเวกเตอร์ที่เป็นของเวกเตอร์อื่น:

 #define two vectors of data
data1 <- c(3, 5, 7, 7, 14, 19, 22, 25)

data2 <- c(1, 2, 3, 4, 5)

#produce new vector that contains elements of data1 that are in data2
data1[data1 %in% data2]

[1] 3 5

เราจะเห็นว่าค่า 3 และ 5 เป็นองค์ประกอบเดียวของเวกเตอร์ที่มีป้ายกำกับ data2 ที่อยู่ในเวกเตอร์ที่มีป้ายกำกับ data1 .

ตัวอย่างที่ 2: ใช้ %in% เพื่อกรองเฟรมข้อมูล

นอกจากนี้เรายังสามารถใช้ตัวดำเนินการ %in% เพื่อกรองแถวในกรอบข้อมูลที่มีค่าบางอย่าง:

 #define data frame
df <- data.frame(team=c('A', 'A', 'B', 'B', 'B', 'C'),
                 points=c(67, 72, 77, 89, 84, 97),
                 assists=c(14, 16, 12, 22, 25, 20))

#view data frame
df

  team points assists
1 A 67 14
2 A 72 16
3 B 77 12
4 B 89 22
5 B 84 25
6 C 97 20

#produce new data frame that only contains rows where team is 'B'
df_new <- df[df$team %in% c(' B '), ]
df_new

  team points assists
3 B 77 12
4 B 89 22
5 B 84 25

#produce new data frame that only contains rows where team is 'B' or 'C'
df_new2 <- df[df$team %in% c(' B ', ' C '), ]
df_new2

  team points assists
3 B 77 12
4 B 89 22
5 B 84 25
6 C 97 20

ตัวอย่างที่ 3: ใช้ %in% เพื่อสร้างคอลัมน์กรอบข้อมูล

นอกจากนี้เรายังสามารถใช้ตัวดำเนินการ %in% เพื่อสร้างคอลัมน์กรอบข้อมูลใหม่ได้

ตัวอย่างเช่น รหัสต่อไปนี้แสดงวิธีการสร้างคอลัมน์ใหม่ที่เรียกว่า แผนก โดยให้ทีม “A” และ “C” เป็น “ตะวันออก” และทีม “B” เป็น “ตะวันตก”:

 library (dplyr)

#define data frame
df <- data.frame(team=c('A', 'A', 'B', 'B', 'B', 'C'),
                 points=c(67, 72, 77, 89, 84, 97),
                 assists=c(14, 16, 12, 22, 25, 20))

#view data frame
df

  team points assists
1 A 67 14
2 A 72 16
3 B 77 12
4 B 89 22
5 B 84 25
6 C 97 20

#create new column called division
df$division = if_else (df$team %in% c(' A ', ' C '), ' East ', ' West ')
df

  team points assists division
1 A 67 14 East
2 A 72 16 East
3 B 77 12 West
4 B 89 22 West
5 B 84 25 West
6 C 97 20 East

แหล่งข้อมูลเพิ่มเติม

วิธีรวมสองคอลัมน์เป็นคอลัมน์เดียวใน R
วิธีเพิ่มแถวใน data frame ใน R
วิธีเปรียบเทียบสองคอลัมน์ใน R

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *