วิธีค้นหาผลรวมเฉพาะของเวกเตอร์สองตัวใน r
คุณสามารถใช้วิธีใดๆ ต่อไปนี้เพื่อค้นหาการรวมกันขององค์ประกอบของเวกเตอร์สองตัวใน R:
วิธีที่ 1: ใช้ Tidyr
library (tidyr) #find unique combinations of elements from vector1 and vector2 crossing(vector1, vector2)
วิธีที่ 2: ใช้ data.table
library (data.table) #find unique combinations of elements from vector1 and vector2 CJ(vector1, vector2, unique= TRUE )
ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติ
ตัวอย่างที่ 1: การค้นหาชุดค่าผสมที่ไม่ซ้ำใครโดยใช้ Tidyr
โค้ดต่อไปนี้แสดงวิธีค้นหาองค์ประกอบที่ไม่ซ้ำกันทั้งหมดระหว่างเวกเตอร์สองตัวใน R โดยใช้ฟังก์ชัน crossing() จากแพ็คเกจ Tidyr :
library (tidyr)
#definevectors
region=c(' North ', ' South ', ' East ', ' West ')
dots=c(0, 5, 10)
#display all unique combinations of region and points
crossing(region, points)
# A tibble: 12 x 2
region points
1 East 0
2 East 5
3 East 10
4 North 0
5 North 5
6 North 10
7 South 0
8 South 5
9South 10
10 West 0
11 West 5
12 West 10
ผลลัพธ์ที่ได้คือกรอบข้อมูลที่แสดงการผสมผสานองค์ประกอบที่เป็นเอกลักษณ์ระหว่างเวกเตอร์ทั้งสอง
เราจะเห็นว่ามีชุดค่าผสมที่ไม่ซ้ำกันถึง 12 ชุด
หากคุณต้องการทราบจำนวนชุดค่าผสมที่ไม่ซ้ำกัน คุณสามารถล้อมฟังก์ชันนี้ด้วยฟังก์ชัน nrow() ได้:
library (tidyr)
#definevectors
region=c(' North ', ' South ', ' East ', ' West ')
dots=c(0, 5, 10)
#display number of unique combinations of region and points
nrow(crossing(region, points))
[1] 12
โปรดทราบว่าฟังก์ชัน crossing() สามารถใช้กับเวกเตอร์มากกว่า 2 ตัวได้
เพียงระบุชื่อของเวกเตอร์ได้มากเท่าที่คุณต้องการให้กับฟังก์ชัน crossing() เพื่อค้นหาจำนวนชุดค่าผสมที่ไม่ซ้ำกันทั้งหมด
ตัวอย่างที่ 2: ค้นหาชุดค่าผสมที่ไม่ซ้ำกันโดยใช้ data.table
รหัสต่อไปนี้แสดงวิธีค้นหาองค์ประกอบที่ไม่ซ้ำกันทั้งหมดระหว่างเวกเตอร์สองตัวใน R โดยใช้ฟังก์ชัน CJ() จากแพ็คเกจ data.table :
library (data.table)
#definevectors
region=c(' North ', ' South ', ' East ', ' West ')
dots=c(0, 5, 10)
#display all unique combinations of region and points
CJ(region, points, unique= TRUE )
region points
1: East 0
2: East 5
3: East 10
4: North 0
5: North 5
6: North 10
7: South 0
8: South 5
9: South 10
10: West 0
11: West 5
12: West 10
ผลลัพธ์ที่ได้คือกรอบข้อมูลที่แสดงการผสมผสานองค์ประกอบที่เป็นเอกลักษณ์ระหว่างเวกเตอร์ทั้งสอง
โปรดทราบว่าผลลัพธ์ของฟังก์ชัน CJ() สอดคล้องกับผลลัพธ์ของฟังก์ชัน crossing()
ฟังก์ชัน CJ() สามารถใช้กับเวกเตอร์มากกว่า 2 ตัวได้
เพียงระบุชื่อของเวกเตอร์ได้มากเท่าที่คุณต้องการให้กับฟังก์ชัน CJ() เพื่อค้นหาจำนวนชุดค่าผสมที่ไม่ซ้ำกันทั้งหมด
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน R:
วิธีนับค่าที่ไม่ซ้ำตามกลุ่มใน R
วิธีเลือกแถวเดี่ยวใน data frame ใน R
วิธีนับค่าที่แตกต่างโดยใช้ dplyr