วิธีแก้ไขใน r: ข้อผิดพลาดใน as.date.numeric(x): ต้องระบุ 'origin'


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

 Error in as.Date.numeric(x) : 'origin' must be supplied 

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

บทช่วยสอนนี้จะอธิบายวิธีแก้ไขข้อผิดพลาดนี้อย่างชัดเจน

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

สมมติว่าเรามีกรอบข้อมูลต่อไปนี้ใน R ซึ่งแสดงยอดขายรวมของบริษัทที่ทำในช่วงหลายวัน:

 #create data frame
df <- data. frame (date=c(27, 140, 180, 200),
                 sales=c(12, 22, 30, 31))

#view data frame
df

  dirty dates
1 27 12
2 140 22
3 180 30
4,200 31

เราสามารถใช้ฟังก์ชัน str() เพื่อแสดงโครงสร้างของกรอบข้อมูล:

 #view structure of data frame
str(df)

'data.frame': 4 obs. of 2 variables:
 $ date: num 27 140 180 200
 $ sales: num 12 22 30 31

เราจะเห็นว่าคอลัมน์ วันที่ และ ยอดขาย มีทั้งตัวเลข

ตอนนี้ สมมติว่าเราพยายามแปลงคอลัมน์ วัน ที่เป็นรูปแบบวันที่:

 #attempt to convert date column to date format
df$date <- as. Date (df$date)

Error in as.Date.numeric(df$date) : 'origin' must be supplied

เราได้รับข้อผิดพลาดเนื่องจากเราไม่ได้ใช้อาร์กิวเมนต์ origin ในฟังก์ชัน as.Date()

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

วิธีแก้ไขข้อผิดพลาดนี้คือเพียงระบุวันที่เดิมเพื่อให้ R รู้วิธีแปลงตัวเลขเป็นวันที่:

 #convert date column to date format, using 2020-01-01 as origin date
df$date <- as. Date (df$date, origin=" 2020-01-01 ")

#view updated data frame
df

        dirty dates
1 2020-01-28 12
2 2020-05-20 22
3 2020-06-29 30
4 2020-07-19 31

ด้วยการระบุวันที่ต้นทาง R จะแปลงตัวเลขเป็นวันที่โดยบวกจำนวนวันเข้ากับจุดเริ่มต้นที่ให้ไว้

ตัวอย่างเช่น:

  • ค่าวันที่แรกที่ 27 ถูกแปลงเป็น 2020-01-28 โดยบวก 27 วันจากวันที่เดิมคือ 2020-01-01
  • ค่าวันที่ที่สอง 140 ถูกแปลงเป็น 05/20/2020 โดยบวก 140 วันจากวันที่เดิมคือ 01/01/2020

และอื่นๆ

นอกจากนี้เรายังสามารถใช้ฟังก์ชัน class() เพื่อยืนยันว่าคอลัมน์ใหม่เป็นวันที่จริง:

 #display class of date column
class(df$date)

[1] “Date”

คอลัมน์ใหม่ตอนนี้เป็นวันที่แทนที่จะเป็นตัวเลข

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

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

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

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

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