ตอบ: วิธีใช้ cbind กับเวกเตอร์ที่มีความยาวต่างกัน


วิธีที่ง่ายที่สุดในการใช้ cbind ใน R กับเวกเตอร์ที่มีความยาวต่างกันคือการตั้งค่าเวกเตอร์ให้มีความยาวเท่ากันโดยใช้ฟังก์ชัน length()

ตัวอย่างต่อไปนี้แสดงวิธีการทำเช่นนี้

ตัวอย่าง: การใช้ cbind กับเวกเตอร์ที่มีความยาวต่างกันใน R

สมมติว่าเราใช้ cbind เพื่อผูกเวกเตอร์สองตัวที่มีความยาวต่างกันเข้าด้วยกันใน R:

 #define two vectors
vec1 <- c(3, 4, 5)
vec2 <- c(1, 6, 4, 4, 7, 6, 9, 8, 7)

#cbind the two vectors together
cbind(vec1, vec2)

      vec1 vec2
 [1,] 3 1
 [2,] 4 6
 [3,] 5 4
 [4,] 3 4
 [5,] 4 7
 [6,] 5 6
 [7,] 3 9
 [8,] 4 8
 [9,] 5 7

ฟังก์ชัน cbind ทำงานได้กับเวกเตอร์ทั้งสอง แต่โปรดทราบว่าค่าของเวกเตอร์แรกจะทำซ้ำซ้ำไปซ้ำมา

สิ่งนี้เรียกว่า “การรีไซเคิล” ใน R.

ในการเติมค่าที่หายไปสำหรับเวกเตอร์ที่สั้นที่สุดด้วยค่า NA คุณสามารถใช้ไวยากรณ์ต่อไปนี้:

 #define two vectors
vec1 <- c(3, 4, 5)
vec2 <- c(1, 6, 4, 4, 7, 6, 9, 8, 7)

#calculate max length of vectors
max_length <- max(length(vec1), length(vec2))

#set length of each vector equal to max length
length(vec1) <- max_length                      
length(vec2) <- max_length 

#cbind the two vectors together
cbind(vec1, vec2)

      vec1 vec2
 [1,] 3 1
 [2,] 4 6
 [3,] 5 4
 [4,] NA 4
 [5,] NA 7
 [6,] NA 6
 [7,] NA 9
 [8,] NA 8
 [9,] NA 7

โปรดทราบว่าตอนนี้ค่าที่หายไปสำหรับเวกเตอร์ที่สั้นที่สุดจะถูกเติมด้วยค่า NA

หมายเหตุ : ในตัวอย่างนี้ เราใช้ cbind กับเวกเตอร์สองตัว แต่คุณสามารถใช้ไวยากรณ์ที่คล้ายกับการใช้ cbind กับเวกเตอร์มากกว่าสองตัวได้

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

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน R:

วิธีใช้ cbind ใน R (พร้อมตัวอย่าง)
วิธีใช้ rbind ใน R (พร้อมตัวอย่าง)
วิธีเปลี่ยนชื่อคอลัมน์เมื่อใช้ cbind ใน R

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

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