วิธีแก้ปัญหา: ลองตั้งค่า "ชื่อคอลัมน์"; บนวัตถุที่มีขนาดน้อยกว่าสองมิติ


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

 Error in `colnames<-`(`*tmp*`, value = c("var1", "var2", "var3")): 
  attempt to set 'colnames' on an object with less than two dimensions

ข้อผิดพลาดนี้มักเกิดขึ้นเมื่อคุณพยายามใช้ฟังก์ชัน colnames() เพื่อตั้งชื่อคอลัมน์บนออบเจ็กต์ที่ไม่ใช่กรอบข้อมูลหรือเมทริกซ์

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

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

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

 #create data frame
df <- data. frame (team=c('A', 'A', 'C', 'B', 'C', 'B', 'B', 'C', 'A'),
                 points=c(12, 8, 26, 25, 38, 30, 24, 24, 15),
                 rebounds=c(10, 4, 5, 5, 4, 3, 8, 18, 22))

#view data frame
df

  team points rebounds
1 to 12 10
2 to 8 4
3 C 26 5
4 B 25 5
5 C 38 4
6 B 30 3
7 B 24 8
8 C 24 18
9 to 15 22

ตอนนี้ สมมติว่าเราพยายามเพิ่มบรรทัดใหม่ที่ส่วนท้ายของกรอบข้อมูล:

 #define new row to add to end of data frame
new_row <- c('D', 15, 11)

#attempt to define column names for new row
colnames(new_row) <- colnames(df)

Error in `colnames<-`(`*tmp*`, value = c("team", "points", "rebounds")): 
  attempt to set 'colnames' on an object with less than two dimensions

เราได้รับข้อผิดพลาดเนื่องจากเราใช้ฟังก์ชัน colnames() บนเวกเตอร์แทน dataframe หรือเมทริกซ์

วิธีการแก้ไขข้อผิดพลาด

เพื่อหลีกเลี่ยงข้อผิดพลาดนี้ เราต้องแน่ใจว่าเราใช้ฟังก์ชัน colnames() กับ data frame:

ตัวอย่างเช่น เราสามารถใช้โค้ดต่อไปนี้เพื่อเพิ่มบรรทัดใหม่ที่ส่วนท้ายของ data frame

 #define new row to add to end of data frame
new_row <- data. frame ('D', 15, 11)

#define column names for new row
colnames(new_row) <- colnames(df)

#add new row to end of data frame
df <- rbind(df, new_row)

#view updated data frame
df

   team points rebounds
1 to 12 10
2 to 8 4
3 C 26 5
4 B 25 5
5 C 38 4
6 B 30 3
7 B 24 8
8 C 24 18
9 to 15 22
10 D 15 11

ครั้งนี้เราไม่ได้รับข้อผิดพลาดใดๆ เนื่องจากเราใช้ฟังก์ชัน colnames() เพื่อตั้งชื่อคอลัมน์ของกรอบข้อมูลแทนเวกเตอร์

จากนั้นเราสามารถใช้ rbind() เพื่อผูกบรรทัดใหม่กับจุดสิ้นสุดของกรอบข้อมูลที่มีอยู่ได้สำเร็จ

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

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

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

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

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