1

我正在将 .csv 文件读入 R,其中 .csv 文件最初以 Excel 格式保存。

在准备 .csv 文件时,我在新电子表格上复制并粘贴了内容,Date.Sold变量在 Excel 中被格式化为“常规”。

我很好奇为什么将命令as.Date()应用于“一般”格式的日期值(来自 Excel)不能在 R 中工作?它给了我一系列 NA 值。如果我Date.Sold在读入 R 之前在 Excel 中将变量格式化为“日期”,则该as.Date()命令可以正常工作。为什么会这样?有什么方法可以将这些“通用”格式的变量读入 R 中的正确日期?

关于我的变量和我使用的命令的一些信息:

 Str(Date.Sold):  $ Date.Sold : Factor w/ 789 levels "-","40965.00",..: 461 463 456 17

我使用的命令:

A$Date = as.Date(A$Date.Sold, "%d/%m/%Y")
4

2 回答 2

1

我认为您可能误解了 as.Date() 函数:您始终必须指定当前要转换的日期的格式。

例如,如果您在字符表示中的日期看起来像这样“02/08/2014”,那么您需要将其转换为 format="%d/%m/%Y":

as.Date("02/08/2014",format="%d/%m/%Y")

如果您的日期是一般的 excel 格式,则需要使用 origin 参数。例如:

as.Date(30829, origin = "1899-12-30")

在您的情况下,您可能需要先进行类型转换,因为您有以下因素:

as.Date(as.integer(as.character(30829)), origin = "1899-12-30")
于 2016-05-05T10:43:16.810 回答
0

您必须在 Excel 中给出日期的起源年份:“1899-12-30”,这样您的函数应该看起来像as.Date(date, origin = "1899-12-30").

此致,

于 2016-05-05T10:42:38.183 回答