【发布时间】:2016-12-15 21:36:03
【问题描述】:
我有一个数据文件,其中给出的日期没有年份。
01/05 Fellowship enters Moria
01/09 Fellowship reaches Lorien
01/17 Passing of Gandalf
02/07 Fellowship leaves Lorien
02/17 Death of Boromir
我试着这样读
lotr <- read_tsv(lotr_file,
skip = 9,
col_names = c("date", "event"),
col_types = cols(
date = col_date(format = "%m/%d"),
event = col_character()))
但它接缝的是,readr 的日期解析器无法解析没有年份的日期。另一方面,lubridate 可以处理这样的日期:
> parse_date_time("12-15", "%m-%d")
[1] "0000-12-15 UTC"
readr 有什么方法可以读取此类日期或使用 lubridate?
如果 readr 无法处理这样的“日期”或一年中的某一天,我将按以下方式使用 dplyr:
lotr <- read_tsv(lotr_file,
skip = 9,
n_max = 37,
col_names = c("day_of_year", "event"),
col_types = cols(
day_of_year = col_character(),
event = col_character())) %>%
mutate(date = parse_date(paste0("2016/",day_of_year))) %>%
select(date, event)
【问题讨论】:
-
您必须在阅读后添加一年。日期不是没有年份的日期。
-
...具体读为字符列,
paste()在前面一年,然后解析。 -
谢谢。我应该写而不是日期,例如一年中的一天。我的问题是 readr 是否可以处理这种“日期”。我在我的问题中添加了一些代码,展示了在没有内置阅读器功能的情况下我将如何做到这一点