ฉันมี dataframe ที่มีอยู่ซึ่งฉันต้องการเพิ่มการสังเกตที่อัปเดต ฉันสามารถระบุการสังเกตที่อัปเดตเหล่านี้ได้ด้วย ID และตัวแปรจุดเวลา ฉันได้ลองลบการสังเกตที่ล้าสมัยออกจาก dataframe ที่มีอยู่แล้วลองใช้ฟังก์ชัน merge() เพื่อผสานกับ dataframe โดยมีเพียงการสังเกตที่อัปเดต แต่ฉันได้รับคอลัมน์ที่ซ้ำกัน มีวิธีที่สง่างามในการทำเช่นนี้ (โดยเฉพาะการใช้ dplyr หรือไม่)
นี่คือตัวอย่างสิ่งที่ฉันอยากทำ: สมมติว่าฉันมี df เรียกว่าแบบฝึกหัด
practice
ID Time score 1 score 2
1 hour 1 3 7
1 hour 2 4 2
2 hour 1 3 4
สมมติว่าฉันต้องการเปลี่ยนตัวแปรคะแนน 1 สำหรับการสังเกตครั้งที่สาม (ซึ่ง ID==2 และเวลา=="ชั่วโมง 1") จาก 3 เป็น 5
สิ่งที่ฉันได้ลองคือสร้าง dataframe ใหม่ที่เรียกว่า Practice1:
ID Time score 1 score 2
1 hour 1 3 7
1 hour 2 4 2
ซึ่งจะลบการสังเกตครั้งที่สามออก จากนั้นจึงสร้าง dataframe ใหม่ด้วยการสังเกตที่ถูกต้อง เรียกว่า Practice2:
ID Time score 1 score 2
2 hour 1 3 4
ฉันได้ลองทำอะไรแบบนี้:
Practice3 <- merge(practice2, practice1, by = "ID", all = T)
อย่างไรก็ตาม ฉันจะได้รับคอลัมน์ที่ซ้ำกัน และเมื่อฉันพยายามรวมตัวแปรหลายตัวในคำสั่ง by= ในฟังก์ชันผสาน ฉันได้รับข้อผิดพลาดนี้:
Error in fix.by(by.x, x) : 'by' must specify a uniquely valid column
ข้อใดอาจเป็นเพราะลักษณะของข้อมูลตามยาว?
ขอบคุณ