วิธีเลือกคอลัมน์ที่มีสตริงเฉพาะใน r
คุณสามารถใช้ฟังก์ชันต่อไปนี้จากแพ็คเกจ dplyr ใน R เพื่อเลือกคอลัมน์ที่มีสตริงเฉพาะ:
วิธีที่ 1: เลือกคอลัมน์ที่มีสตริงเฉพาะ
df %>%
select(matches(" string1 "))
วิธีที่ 2: เลือกคอลัมน์ที่มีหนึ่งในหลายสตริง
df %>%
select(matches(" string1|string2|string3 "))
ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติกับกรอบข้อมูลต่อไปนี้ใน R:
#create data frame df <- data. frame (mavs=c(12, 10, 14, 19, 22, 25, 29), cavs=c(22, 41, 14, 15, 15, 19, 22), hornets=c(8, 8, 12, 14, 15, 13, 12), spurs=c(10, 12, 12, 16, 22, 28, 30), nets=c(9, 7, 10, 22, 28, 23, 25)) #view data frame df mavs cavs hornets spurs nets 1 12 22 8 10 9 2 10 41 8 12 7 3 14 14 12 12 10 4 19 15 14 16 22 5 22 15 15 22 28 6 25 19 13 28 23 7 29 22 12 30 25
ตัวอย่างที่ 1: เลือกคอลัมน์ที่มีสตริงเฉพาะ
รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน matchs() เพื่อเลือกเฉพาะคอลัมน์ที่มีสตริง “avs” อยู่ที่ไหนสักแห่งในชื่อ:
library (dplyr)
#select all columns that contain "avs" in the name
df %>%
select(matches(" avs "))
mavs cavs
1 12 22
2 10 41
3 14 14
4 19 15
5 22 15
6 25 19
7 29 22
เฉพาะคอลัมน์ที่มี “avs” ในชื่อเท่านั้นที่จะถูกส่งกลับ
ในกรณีนี้ “mavs” และ “cavs” เป็นเพียงคอลัมน์เดียวที่ส่งคืน
ตัวอย่างที่ 2: เลือกคอลัมน์ที่มีหนึ่งในหลายสตริง
รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน matchs() เพื่อเลือกเฉพาะคอลัมน์ที่มี “avs” หรือ “ets” อยู่ที่ไหนสักแห่งในชื่อ:
library (dplyr)
#select all columns that contain "avs" or "ets" in the name
df %>%
select(matches(" avs|ets "))
mavs cavs hornets nets
1 12 22 8 9
2 10 41 8 7
3 14 14 12 10
4 19 15 14 22
5 22 15 15 28
6 25 19 13 23
7 29 22 12 25
เฉพาะคอลัมน์ที่มี “avs” หรือ “ets” ในชื่อเท่านั้นที่จะถูกส่งกลับ
โปรดทราบว่าแถบแนวตั้ง ( | ) คือตัวดำเนินการ ” OR ” ใน R
คุณสามารถโยงตัวดำเนินการ “OR” เหล่านี้ได้มากเท่าที่คุณต้องการเพื่อเลือกคอลัมน์ที่มีสตริงต่างๆ กัน
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้อธิบายวิธีดำเนินการงานทั่วไปอื่น ๆ โดยใช้ dplyr:
วิธีเลือกคอลัมน์ตามชื่อโดยใช้ dplyr
วิธีเลือกคอลัมน์ตามดัชนีโดยใช้ dplyr
วิธีใช้ select_if กับหลายเงื่อนไขใน dplyr