我正在将.csv文件读入R,其中.csv文件最初以Excel格式保存。
在准备.csv文件时,我在新电子表格上复制并粘贴了内容,Date.Sold
变量的格式为" general"在Excel中。
我很好奇为什么将命令as.Date()
应用于" general"格式化的日期值(来自Excel)无法在R中工作?它给了我一系列NA值。如果我已将Date.Sold
变量格式化为" date"在读入R之前在Excel中,as.Date()
命令正常工作。为什么会这样?有没有办法阅读这些" general"格式化变量到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")
答案 0 :(得分:1)
我想你可能会误解as.Date()函数: 您始终必须指定当前要转换的日期格式。
例如,如果你的角色表示日期如下所示" 02/08/2014"然后你需要转换格式="%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")
答案 1 :(得分:0)
您必须在Excel中提供日期来源年份:" 1899-12-30"所以你的函数应该看起来像as.Date(date, origin = "1899-12-30")
。
致以最诚挚的问候,