如何修复 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

我们收到错误,因为我们没有在as.Date()函数中使用origin参数。

如何修复错误

修复此错误的方法是简单地提供原始日期,以便 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-01 的基础上添加 27 天而转换为2020-01-28
  • 通过在原始日期01/01/2020基础上添加 140 天,将第二个日期值140转换为 05/20/2020。

等等。

我们还可以使用class()函数来确认新列确实是日期:

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

[1] “Date”

新列现在是日期而不是数字。

其他资源

以下教程解释了如何解决 R 中的其他常见错误:

如何在 R 中修复:名称与以前的名称不匹配
如何在 R 中修复:较长物体的长度不是较短物体长度的倍数
如何在 R 中修复:对比只能应用于具有 2 个或更多级别的因子

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注