วิธีแก้ไขในข้อผิดพลาด r: ตัวระบุซ้ำสำหรับแถว


ข้อผิดพลาดที่คุณอาจพบใน R คือ:

 Error: Duplicate identifiers for rows

ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณพยายามใช้ฟังก์ชัน Spread() เพื่อกระจายค่าของคอลัมน์ตั้งแต่หนึ่งคอลัมน์ขึ้นไปใน Data Frame ไปยังคอลัมน์ของตัวเอง

อย่างไรก็ตาม ข้อผิดพลาดอาจเกิดขึ้นได้หากไม่มี ID เฉพาะสำหรับแต่ละแถว ดังนั้นจึงไม่มีวิธีใดในการพิจารณาว่าค่าใดเป็นของข้อสังเกตใดเมื่อเรียกใช้การกระจาย

ตัวอย่างต่อไปนี้แสดงวิธีการแก้ไขข้อผิดพลาดนี้ในทางปฏิบัติ

ตัวอย่าง: วิธีการแก้ไขข้อผิดพลาด

สมมติว่าเรามีกรอบข้อมูลต่อไปนี้ใน R ซึ่งมีข้อมูลเกี่ยวกับผู้เล่นบาสเกตบอลต่างๆ:

 #create data frame
df <- data. frame (player=rep(c(' A ', ' B '), each= 4 ),
                 year=rep(1:4, times= 2 ),
                 assists=c(4, 10, 4, 4, 3, 7, 7, 6),
                 dots=c(14, 6, 18, 7, 22, 9, 38, 4))

#view data frame
df

  player year assists points
1 A 1 4 14
2 A 2 10 6
3 To 3 4 18
4 To 4 4 7
5 B 1 3 22
6 B 2 7 9
7 B 3 7 38
8 B 4 6 4

ตอนนี้สมมติว่าเราต้องการแปลงกรอบข้อมูลให้มีคอลัมน์ ปี เป็นคอลัมน์ id และสร้างคอลัมน์ใหม่ที่เรียกว่า Assists_A , Assists_B , point_A และ point_B เพื่อแสดงค่า Assists และคะแนนของผู้เล่น A และ B ในระหว่างหลักสูตรของแต่ละปี .

เนื่องจากค่าในคอลัมน์ปีจะไม่ซ้ำกัน (จะมี 1 สองตัว, 2 สองตัว ฯลฯ ) ฟังก์ชัน Spread() จะทำให้เกิดข้อผิดพลาด

อย่างไรก็ตาม เราสามารถใช้ฟังก์ชัน pivot_wider() กับไวยากรณ์ต่อไปนี้เพื่อสร้างกรอบข้อมูลที่ต้องการ:

 library (tidyr)

#spread the values in the points and assists columns
pivot_wider(data = df, 
            id_cols = year, 
            names_from = player, 
            values_from = c(' assists ', ' points '))

# A tibble: 4 x 5
   year assists_A assists_B points_A points_B
                    
1 1 4 3 14 22
2 2 10 7 6 9
3 3 4 7 18 38
4 4 4 6 7 4

โปรดทราบว่าเราไม่ได้รับข้อผิดพลาดใด ๆ และสามารถสร้างคอลัมน์ใหม่ที่แสดงค่าแต้มและช่วยเหลือสำหรับผู้เล่น A และ B ในแต่ละสี่ปีได้สำเร็จ

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

บทช่วยสอนต่อไปนี้จะอธิบายวิธีแก้ไขข้อผิดพลาดทั่วไปอื่น ๆ ใน R:

วิธีแก้ไขใน R: NAs ที่ถูกบังคับโดยการบังคับ
วิธีซ่อมแซมใน R: ดัชนีอยู่นอกขอบเขต
วิธีแก้ไขใน R: ความยาวของวัตถุที่ยาวกว่าไม่ใช่ผลคูณของความยาวของวัตถุที่สั้นกว่า
วิธีการซ่อมแซมใน R: จำนวนองค์ประกอบที่จะเปลี่ยนไม่ใช่ผลคูณของความยาวในการเปลี่ยน

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

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