วิธีเลือกคอลัมน์เฉพาะใน r: พร้อมตัวอย่าง


คุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อเลือกคอลัมน์เฉพาะในกรอบข้อมูลแบบ R:

 #select columns by name
df[c(' col1 ', ' col2 ', ' col4 ')]

#select columns by index
df[c(1, 2, 4)]

หรือคุณสามารถใช้ฟังก์ชัน select() จากแพ็คเกจ dplyr :

 library (dplyr)

#select columns by name
df %>%
  select(col1, col2, col4)

#select columns by index
df %>%
  select(1, 2, 4)

สำหรับชุดข้อมูลที่มีขนาดใหญ่มาก ขอแนะนำให้ใช้เมธอด dplyr เนื่องจากฟังก์ชัน select() มีแนวโน้มที่จะเร็วกว่าฟังก์ชัน R พื้นฐาน

ตัวอย่างต่อไปนี้แสดงวิธีการใช้ทั้งสองวิธีนี้ในทางปฏิบัติกับกรอบข้อมูลต่อไปนี้:

 #create data frame
df <- data. frame (a=c(1, 3, 4, 6, 8, 9),
                 b=c(7, 8, 8, 7, 13, 16),
                 c=c(11, 13, 13, 18, 19, 22),
                 d=c(12, 16, 18, 22, 29, 38))

#view data frame
df

  abcd
1 1 7 11 12
2 3 8 13 16
3 4 8 13 18
4 6 7 18 22
5 8 13 19 29
6 9 16 22 38

ตัวอย่างที่ 1: เลือกคอลัมน์เฉพาะโดยใช้ฐาน R (ตามชื่อ)

รหัสต่อไปนี้แสดงวิธีการเลือกคอลัมน์เฉพาะตามชื่อโดยใช้ฐาน R:

 #select columns by name
df[c(' a ', ' b ', ' d ')]

  abd
1 1 7 12
2 3 8 16
3 4 8 18
4 6 7 22
5 8 13 29
6 9 16 38

ตัวอย่างที่ 2: เลือกคอลัมน์เฉพาะโดยใช้ฐาน R (ตามดัชนี)

รหัสต่อไปนี้แสดงวิธีการเลือกคอลัมน์เฉพาะตามดัชนีโดยใช้ฐาน R:

 #select columns by index
df[c(1, 2, 4)]

  abd
1 1 7 12
2 3 8 16
3 4 8 18
4 6 7 22
5 8 13 29
6 9 16 38

ตัวอย่างที่ 3: เลือกคอลัมน์เฉพาะโดยใช้ dplyr (ตามชื่อ)

รหัสต่อไปนี้แสดงวิธีการเลือกคอลัมน์เฉพาะตามชื่อโดยใช้ dplyr:

 library (dplyr)

#select columns by name
df %>%
  select(a, b, d)

  abd
1 1 7 12
2 3 8 16
3 4 8 18
4 6 7 22
5 8 13 29
6 9 16 38

ตัวอย่างที่ 4: เลือกคอลัมน์เฉพาะโดยใช้ dplyr (ตามดัชนี)

รหัสต่อไปนี้แสดงวิธีการเลือกคอลัมน์เฉพาะตามดัชนีโดยใช้ dplyr:

 library (dplyr)

#select columns by index
df %>%
  select(1, 2, 4)

  abd
1 1 7 12
2 3 8 16
3 4 8 18
4 6 7 22
5 8 13 29
6 9 16 38

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

วิธีเพิ่มคอลัมน์ใน data frame ใน R
วิธีวนซ้ำชื่อคอลัมน์ใน R
วิธีจัดเรียง data frame ตามคอลัมน์ใน R

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

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