การรวมตัวเลขและอักขระจากชุดข้อมูลต่างๆ

ฉันกำลังพยายามรวมชุดข้อมูลสองชุดเข้าด้วยกัน ชุดข้อมูล 1 มีประมาณ 4000 แถวและชุดข้อมูล 2 มี 132 แถว ฉันต้องการจับคู่ชื่อ Brand ในชุดข้อมูล 2 กับ UPS ในชุดข้อมูล 1 ดังนั้น UPS ทั้งหมดจึงมี Brands ที่สอดคล้องกันใน 1 เช่นกัน ฉันพยายามรวมทั้งสองเข้ากับ merge อย่างไรก็ตาม ฉันไม่สามารถรวมพวกมันเข้าด้วยกันได้สำเร็จ

ชุดข้อมูล 01: โดยที่ UPS เป็นตัวเลข

  UPS         WEEK  AP
1 1111112016    1   385.22
2 1111112016    2   221.63
3 1111112016    3   317.47
4 1111112016    4   173.71
5 1111112016    5   269.55

ชุดข้อมูล 02:

  UPC        Brand
1 1111112016 Dove
2 1111112440 Dove
3 1111112480 Dove
4 1111112501 Dove
5 1111132008 Lever
6 1111132012 Lever
7 1111132048 Lever
8 1111132122 Lever

นี่คือวิธีที่ฉันลองมาแล้ว:

Brand = c(unique(UB$Brand))
UPS = c(unique(PAW2$UPS))
PAWn = merge(PAW, UB, by.x = "UPS", by.y = "Brand")

ฉันรู้ว่ายังมีกระทู้อื่นอยู่ แต่จนถึงตอนนี้พวกเขาไม่ได้ช่วย


person Christoph P.    schedule 16.10.2016    source แหล่งที่มา
comment
ไม่ควรby.y = "UPC"เหรอ? คุณไม่ได้อะไรเลยเพราะแน่นอนว่าคอลัมน์ UPS ของ PAW ไม่เคยเท่ากับคอลัมน์ Brand ของ UB   -  person nicola    schedule 16.10.2016


คำตอบ (1)


จากคำอธิบายของคุณ ฉันคิดว่าคุณต้องการ:

 merge(PAW, UB, by.x = "UPS", by.y = "UPC", all.x = TRUE)

เพื่อให้ได้สิ่งที่คุณต้องการ ดังที่ Nicola ได้กล่าวไว้แล้วในความคิดเห็น วิธีเดียวที่คุณสามารถจับคู่ชื่อ Brand ใน UB กับรหัส UPS ใน PAW ได้คือการจับคู่กับรหัส UPC ใน UB

นอกจากนี้ยังใช้งานได้เมื่อ UB$UPC เป็นตัวแปรอักขระ และ PAW$UPS เป็นตัวแปรตัวเลข

การเพิ่ม all.x = TRUE การสังเกตทั้งหมดใน PAW จะถูกส่งกลับ แม้ว่าจะไม่มีค่าที่ตรงกันใน UB ก็ตาม

person h3rm4n    schedule 16.10.2016
comment
ฉันลองแล้วและฉันยังคงได้รับข้อผิดพลาด:Error in fix.by(by.y, y) : 'by' mustระบุคอลัมน์ที่ถูกต้องไม่ซ้ำกัน - person Christoph P.; 16.10.2016
comment
มันใช้งานได้กับข้อมูลตัวอย่างที่คุณให้ไว้ในคำถาม คอลัมน์ของคุณชื่ออะไร? - person h3rm4n; 16.10.2016
comment
ฉันสามารถแก้ไขได้ ดูเหมือนว่าเราไม่จำเป็นต้องกำหนดค่าเฉพาะสำหรับอาร์กิวเมนต์ที่รวม ซึ่งจะใช้ by.x หรือ by.y ในภายหลัง คุณบอกได้เลยว่าควรเลือกคอลัมน์ไหน ฉันเพิ่งพูดว่า PAW_N = ผสาน (PAW, UB, by.x = UPS, by.y = UPC, all.x = TRUE) - person Christoph P.; 16.10.2016