Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用readr读取没有年份的日期?_R_Readr - Fatal编程技术网

如何使用readr读取没有年份的日期?

如何使用readr读取没有年份的日期?,r,readr,R,Readr,我有一个数据文件,其中给出的日期没有年份 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,

我有一个数据文件,其中给出的日期没有年份

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

如果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)
lotr%
突变(日期=解析日期(粘贴0(“2016/”,年份的第几天))%>%
选择(日期、事件)

正如Rich在评论中指出的,没有年份的“日期”无效,因为您需要年份、月份和日期

像这样的问题以前已经出现过,答案是只添加一个缺失类型的值,无论是一天到一个月,还是一年到一个月

R> vals <- c("01/05", "01/09", "01/17", "02/07", "02/17")  # values
R> yval <- paste0("2000/", vals)  # prefix a year 
R> anytime::anydate(yval)    # needs no format
[1] "2000-01-05" "2000-01-09" "2000-01-17" "2000-02-07" "2000-02-17"
R> 

正如Rich在评论中指出的,没有年份的“日期”无效,因为您需要年份、月份和日期

像这样的问题以前已经出现过,答案是只添加一个缺失类型的值,无论是一天到一个月,还是一年到一个月

R> vals <- c("01/05", "01/09", "01/17", "02/07", "02/17")  # values
R> yval <- paste0("2000/", vals)  # prefix a year 
R> anytime::anydate(yval)    # needs no format
[1] "2000-01-05" "2000-01-09" "2000-01-17" "2000-02-07" "2000-02-17"
R> 

你必须在读过之后再加上一年。日期不是没有年份的日期…具体来说,请将其作为字符列阅读,
paste()
A year在前面,然后解析。谢谢。我不应该写日期,而应该写一年中的某一天。我的问题是readr是否能处理这种“约会”。我已经在我的问题中添加了一些代码,显示了如果没有内置的readr功能,我将如何做到这一点。您必须在阅读一年后添加这些代码。日期不是没有年份的日期…具体来说,请将其作为字符列阅读,
paste()
A year在前面,然后解析。谢谢。我不应该写日期,而应该写一年中的某一天。我的问题是readr是否能处理这种“约会”。我已经在我的问题中添加了一些代码,展示了在没有内置readr功能的情况下我将如何做到这一点谢谢。我不应该写日期,而应该写一年中的某一天。我的问题是readr是否能处理这种“约会”。我已经在我的问题中添加了一些代码,显示了如果没有内置的readr功能,我将如何做到这一点,所以您仍然坚持“月和年”是一个日期。他们没有。谢谢你。我不应该写日期,而应该写一年中的某一天。我的问题是readr是否能处理这种“约会”。我已经在我的问题中添加了一些代码,显示了如果没有内置的readr功能,我将如何做到这一点,所以您仍然坚持“月和年”是一个日期。他们没有。
R> diff(anytime::anydate(yval))
Time differences in days
[1]  4  8 21 10
R> format(anytime::anydate(yval), "%d-%b")
[1] "05-Jan" "09-Jan" "17-Jan" "07-Feb" "17-Feb"
R>