【发布时间】:2020-05-07 15:27:03
【问题描述】:
我知道这个问题被问了很多,但我只是因为我尝试了所有东西(包括我设法理解的类似问题的提示)才来找你。
我有一个相当大的 CSV 文件(> 16 000 行),其中有一个“日期”列,其中包含以下格式的日期“01/01/1999”。 但是,在加载文件时,该列不被识别为日期,而是作为带有 read.csv2 的因子,或带有 fread(data.table 包)的字符。我加载了 lubridate 库。 在这两种情况下,我都尝试使用我知道的所有方法(列 = 日期,数据 = 测试)将列转换为日期格式:
as.Date(test$Date, format = "%d/%m/%Y", tz = "")
或者
strptime(test$Date, format = "%d/%m/%y", tz = "")
或者
as_date(test$Date)
还有来自 lubridate 的函数 dmy,以及
as.POSIXct(test$Date, "%d/%m/%y", tz = "").
我还尝试更改格式:用 ymd 代替 dmy,用“-”代替“/”。 我什至尝试将字符类更改为数字(加载 fread 时),将因子类更改为数字(加载 read.csv2 时)。
尽管如此,列仍保留在其因子/字符类中。
有人知道我错过了什么吗?
【问题讨论】:
-
你怎么知道它是“%d/%m/%Y”而不是“%m/%d/%Y”?
-
只需使用
dput向我们展示您的数据摘录,我们知道您在说什么。请阅读:stackoverflow.com/questions/5963269/… -
只是出于好奇:您分配了结果,对吧? (
<-) 你写“列在他们的因子/字符类中”而不是“这是我得到的错误”听起来有点可疑跨度> -
akash87 : 是欧洲数据,天数在前,我犯了不显示数据的错误,所以你看不到。
-
您不需要添加解释是什么解决了您的问题。接受答案就足够了。希望在社区中见到你。干杯。