วิธีซ้อนคอลัมน์ data frame ใน r


บ่อยครั้งที่คุณอาจต้องการซ้อนคอลัมน์ data frame สองคอลัมน์ขึ้นไปให้เป็นคอลัมน์เดียวใน R

ตัวอย่างเช่น คุณอาจต้องการเริ่มต้นจากสิ่งนี้:

 person trial outcome1 outcome2
     A 1 7 4
     A 2 6 4
     B 1 6 5
     B 2 5 5
     C 1 4 3
     C 2 4 2

สำหรับการที่:

 person trial outcomes value
      A 1 outcome1 7
      A 2 outcome1 6
      B 1 outcome1 6
      B 2 outcome1 5
      C 1 outcome1 4
      C 2 outcome1 4
      A 1 outcome2 4
      A 2 outcome2 4
      B 1 outcome2 5
      B 2 outcome2 5
      C 1 outcome2 3
      C 2 outcome2 2

บทช่วยสอนนี้จะอธิบายสองวิธีที่คุณสามารถใช้ใน R เพื่อทำสิ่งนี้

วิธีที่ 1: ใช้ฟังก์ชันกองซ้อนใน Base R

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

 #create original data frame
data <- data.frame(person=c('A', 'A', 'B', 'B', 'C', 'C'),
                   trial=c(1, 2, 1, 2, 1, 2),
                   outcome1=c(7, 6, 6, 5, 4, 4),
                   outcome2=c(4, 4, 5, 5, 3, 2))

#stack the third and fourth columns
cbind (data[1:2], stack (data[3:4]))

   person trial values ind
1 A 1 7 outcome1
2 A 2 6 outcome1
3 B 1 6 outcome1
4 B 2 5 outcome1
5 C 1 4 outcome1
6 C 2 4 outcome1
7 A 1 4 outcome2
8 A 2 4 outcome2
9 B 1 5 outcome2
10 B 2 5 outcome2
11 C 1 3 outcome2
12 C 2 2 outcome2

วิธีที่ 2: ใช้ฟังก์ชัน Melt ของ Reshape2

รหัสต่อไปนี้แสดงวิธีการซ้อนคอลัมน์โดยใช้ฟังก์ชัน ละลาย ในไลบรารี reshape2 :

 #loadlibrary
library(reshape2)

#create original data frame
data <- data.frame(person=c('A', 'A', 'B', 'B', 'C', 'C'),
                   trial=c(1, 2, 1, 2, 1, 2),
                   outcome1=c(7, 6, 6, 5, 4, 4),
                   outcome2=c(4, 4, 5, 5, 3, 2))

#melt columns of data frame
melt(data, id. var = c(' person ', ' trial '), variable. name = ' outcomes ')

   person trial outcomes value
1 A 1 outcome1 7
2 A 2 outcome1 6
3 B 1 outcome1 6
4 B 2 outcome1 5
5 C 1 outcome1 4
6 C 2 outcome1 4
7 A 1 outcome2 4
8 A 2 outcome2 4
9 B 1 outcome2 5
10 B 2 outcome2 5
11 C 1 outcome2 3
12 C 2 outcome2 2

คุณสามารถดูเอกสารฉบับเต็มเกี่ยวกับฟังก์ชันผสาน ได้ที่นี่

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

วิธีเปลี่ยนสองคอลัมน์ใน R
วิธีเปลี่ยนชื่อคอลัมน์ใน R
วิธีรวมคอลัมน์เฉพาะใน R

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

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