วิธีแก้ไขใน 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 ระดับขึ้นไปเท่านั้น