วิธีซ่อมแซมใน r: การแทนที่มีแถว x ข้อมูลมี y


ข้อความแสดงข้อผิดพลาดที่คุณอาจพบเมื่อใช้ R คือ:

 Error in `$<-.data.frame`(`*tmp*`, conf_full, value = c("West", "West",: 
  replacement has 3 rows, data has 5

ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณพยายามเพิ่มคอลัมน์ใหม่ลงในกรอบข้อมูลที่มีค่าตามคอลัมน์ที่มีอยู่ แต่ไม่สามารถสร้างคอลัมน์ใหม่ก่อนได้

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

วิธีการทำซ้ำข้อผิดพลาด

สมมติว่าเราสร้าง data frame ต่อไปนี้ใน R:

 #create data frame
df <- data. frame (conference=c('W', 'W', 'W', 'E', 'E'),
                 points=c(99, 90, 86, 88, 95),
                 assists=c(33, 28, 31, 39, 34))	

#view data frame
df

  conference points assists
1 W 99 33
2 W 90 28
3 W 86 31
4 E 88 39
5 E 95 34

ตอนนี้ สมมติว่าเราพยายามเพิ่มคอลัมน์ใหม่ให้กับ data frame ชื่อ conf_full :

 #attempt to create new column based on conference name
df$conf_full[which(df$conference==' W ')] <- ' West '
df$conf_full[which(df$conference==' E ')] <- ' East '

Error in `$<-.data.frame`(`*tmp*`, conf_full, value = c("West", "West",: 
  replacement has 3 rows, data has 5

เราได้รับข้อผิดพลาดเนื่องจากยังไม่มีชื่อตัวแปร conf_full ซึ่งหมายความว่าเรายังไม่สามารถกำหนดค่าให้กับคอลัมน์นี้ได้

วิธีการหลีกเลี่ยงข้อผิดพลาด

เพื่อหลีกเลี่ยงข้อผิดพลาดนี้ ก่อนอื่นเราสามารถสร้างตัวแปร conf_full และกำหนดค่าของ NA ให้กับมัน:

 #create conf_full variable
df$conf_full <- NA

เมื่อตัวแปรมีอยู่แล้ว เราก็สามารถกำหนดค่าให้กับมันได้:

 #create new column based on conference
df$conf_full[which(df$conference==' W ')] <- ' West '
df$conf_full[which(df$conference==' E ')] <- ' East '

#view updated data frame
df

  conference points assists conf_full
1 W 99 33 West
2 W 90 28 West
3 W 86 31 West
4 E 88 39 East
5 E 95 34 East

โปรดทราบว่าเราไม่ได้รับข้อผิดพลาดใดๆ ในครั้งนี้เนื่องจากเราสร้างตัวแปร conf_full ก่อนที่จะพยายามกำหนดค่าให้กับตัวแปรดังกล่าว

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

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

วิธีแก้ไขในอาร์กิวเมนต์ R: เกี่ยวข้องกับจำนวนบรรทัดที่แตกต่างกัน
วิธีแก้ไขใน R: ข้อผิดพลาดในการเลือกอาร์กิวเมนต์ที่ไม่ได้ใช้
วิธีการซ่อมแซมใน R: การเปลี่ยนมีความยาวเป็นศูนย์

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

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