Como corrigir em r: erro em as.date.numeric(x): 'origin' deve ser fornecido
Um erro que você pode encontrar no R é:
Error in as.Date.numeric(x) : 'origin' must be supplied
Este erro normalmente ocorre quando você tenta converter um número em uma data em R, mas não consegue fornecer uma data original.
Este tutorial explica exatamente como corrigir esse erro.
Como reproduzir o erro
Suponha que temos o seguinte quadro de dados em R que mostra o total de vendas realizadas durante vários dias por uma empresa:
#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
Podemos usar a função str() para exibir a estrutura do quadro de dados:
#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
Podemos ver que as colunas de data e vendas são numéricas.
Agora suponha que tentamos converter a coluna de data para um formato de data:
#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
Estamos recebendo um erro porque não usamos o argumento origin na função as.Date() .
Como corrigir o erro
A maneira de corrigir esse erro é simplesmente fornecer uma data original para que R saiba como converter números em datas:
#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
Ao fornecer uma data de origem, R converteu os números em datas adicionando o número de dias à origem fornecida.
Por exemplo:
- O primeiro valor de data 27 foi convertido para 28/01/2020 adicionando 27 dias à data original de 01/01/2020.
- O valor da segunda data de 140 foi convertido para 20/05/2020 adicionando 140 dias à data original de 01/01/2020.
E assim por diante.
Também podemos usar a função class() para confirmar se a nova coluna é de fato uma data:
#display class of date column
class(df$date)
[1] “Date”
A nova coluna agora é uma data em vez de um número.
Recursos adicionais
Os tutoriais a seguir explicam como resolver outros erros comuns em R:
Como corrigir em R: os nomes não correspondem aos nomes anteriores
Como corrigir em R: o comprimento de um objeto mais longo não é múltiplo do comprimento de um objeto mais curto
Como corrigir em R: contrastes só podem ser aplicados a fatores com 2 ou mais níveis