我有一个日期变量,如下所示:
df<-structure(list(y = structure(c(66L, 66L, 15L, 66L, 17L, 66L,
66L, 66L, 66L, 35L, 66L, 33L, 11L, 66L, 38L, 66L, 46L, 66L, 66L,
66L, 66L, 66L, 66L, 19L, 13L, 66L, 66L, 66L, 66L, 66L, 66L, 66L,
66L, 66L, 47L, 66L, 1L, 25L, 28L, 44L, 66L, 66L, 66L, 66L, 66L,
66L, 66L, 66L, 66L, 66L, 51L, 66L, 66L, 66L, 66L, 66L, 66L, 54L,
66L, 66L, 33L, 66L, 66L, 66L, 66L, 66L, 53L, 53L, 66L, 55L, 55L,
55L, 54L, 55L, 56L, 55L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L,
66L, 66L, 66L, 66L, 66L, 66L, 60L, 66L, 66L, 66L, 60L, 66L, 2L,
42L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 6L, 66L, 16L, 66L,
66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 8L, 66L,
66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 65L,
66L, 66L, 66L, 63L, 66L, 66L, 63L, 66L, 66L, 66L, 66L, 64L, 66L,
66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L,
66L, 66L, 66L, 66L, 39L, 66L, 66L, 66L, 66L, 52L, 5L, 66L, 33L,
66L, 66L, 25L, 33L, 66L, 41L, 25L, 25L, 61L, 66L, 12L, 12L, 66L,
66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 16L, 3L, 18L,
18L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 16L, 62L, 66L, 62L,
66L, 18L, 66L, 66L, 66L, 33L, 13L, 66L, 66L, 66L, 66L, 66L, 66L,
66L, 66L, 43L, 10L, 66L, 66L, 9L, 21L, 22L, 23L, 24L, 27L, 26L,
48L, 40L, 20L, 32L, 29L, 14L, 36L, 66L, 66L, 31L, 66L, 49L, 45L,
4L, 66L, 8L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L,
66L, 66L, 30L, 66L, 66L, 66L, 66L, 57L, 66L, 66L, 66L, 66L, 28L,
66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L,
41L, 41L, 19L, 66L, 16L, 66L, 66L, 7L, 66L, 66L, 34L, 66L, 66L,
66L, 66L, 33L, 66L, 66L, 66L, 50L, 58L, 66L, 37L, 66L, 66L, 66L,
66L, 66L, 66L, 66L, 66L, 66L, 66L, 66L, 59L), .Label = c("1966-1-1",
"1976-1-1", "1978-1-1", "1993-1-1", "1999-1-1", "2002-1-1", "2002-5-1",
"2005-1-1", "2006-1-1", "2006-12-6", "2007-1-1", "2007-6-8",
"2009-1-1", "2009-7-2", "2010-5-1", "2011-1-1", "2011-3-1", "2011-9-27",
"2012-1-1", "2012-1-10", "2013-1-1", "2013-4-1", "2013-5-1",
"2014-1-1", "2015-1-1", "2015-11-1", "2015-5-1", "2016-1-1",
"2016-12-10", "2016-3-1", "2016-6-30", "2016-9-12", "2017-1-1",
"2017-1-27", "2017-11-1", "2017-11-17", "2017-2-2", "2017-7-1",
"2017-9-1", "2017-9-12", "2018-1-1", "2018-12-14", "2018-12-3",
"2018-4-1", "2018-6-1", "2018-9-14", "2019-2-1", "2019-2-25",
"2019-2-4", "2019-3-19", "2019-3-21", "2019-6-1", "2019-7-15",
"2019-7-17", "2019-7-22", "2019-7-23", "2019-8-12", "2020-1-9",
"2020-12-3", "2020-2-5", "2020-7-1", "2020-8-20", "2021-1-26",
"2021-2-2", "2021-2-21", "NA-1-1"), class = "factor")), class = "data.frame", row.names = c(NA,
-327L))我现在尝试将其格式化为日期,因此我使用以下代码:
df<-as.Date(df)然而,我得到了错误代码Error in as.Date.default(y) : do not know how to convert 'y' to class “Date”,我做错了什么?或者是y的哪个部分导致了这个错误?我找不到答案,有什么建议吗?对于year==NA,日期将为NA。我以前在类似的问题上使用过这些代码,没有任何问题。所以我认为是数据部分有一些问题。但是我不确定是哪条记录导致了这个错误。如何识别导致此错误的原因?非常感谢。
更新:
df2<-structure(list(df2 = structure(c(43L, 38L, 30L, 38L, 32L, 92L,
38L, 38L, 38L, 67L, 79L, 42L, 22L, 70L, 73L, 24L, 67L, 93L, 70L,
22L, 79L, 69L, 69L, 36L, 25L, 15L, 9L, 63L, 79L, 97L, 92L, 91L,
63L, 25L, 88L, 79L, 2L, 45L, 56L, 91L, 79L, 104L, 63L, 28L, 79L,
56L, 96L, 76L, 56L, 45L, 50L, 83L, 83L, 56L, 83L, 84L, 116L,
116L, 56L, 98L, 56L, 8L, 98L, 42L, 42L, 42L, 42L, 42L, 116L,
116L, 116L, 116L, 116L, 117L, 116L, 117L, 11L, 120L, 121L, 121L,
124L, 132L, 115L, 115L, 113L, 132L, 132L, 132L, 132L, 131L, 113L,
130L, 130L, 113L, 119L, 79L, 3L, 86L, 6L, 83L, 84L, 138L, 123L,
31L, 79L, 11L, 13L, 122L, 31L, 123L, 79L, 139L, 136L, 141L, 134L,
141L, 141L, 83L, 38L, 148L, 148L, 17L, 36L, 79L, 98L, 98L, 98L,
98L, 98L, 36L, 98L, 36L, 98L, 56L, 79L, 143L, 17L, 36L, 56L,
56L, 56L, 123L, 123L, 36L, 56L, 140L, 143L, 140L, 142L, 11L,
29L, 25L, 137L, 11L, 146L, 137L, 137L, 147L, 145L, 76L, 22L,
76L, 76L, 11L, 144L, 144L, 77L, 16L, 79L, 98L, 79L, 98L, 10L,
63L, 63L, 63L, 133L, 45L, 63L, 63L, 79L, 45L, 45L, 135L, 42L,
23L, 23L, 23L, 23L, 135L, 127L, 135L, 79L, 128L, 23L, 34L, 34L,
27L, 31L, 5L, 35L, 35L, 33L, 27L, 121L, 31L, 129L, 129L, 44L,
25L, 31L, 27L, 27L, 27L, 34L, 35L, 34L, 119L, 99L, 36L, 25L,
107L, 107L, 17L, 107L, 15L, 63L, 83L, 12L, 87L, 21L, 19L, 1L,
20L, 38L, 39L, 40L, 42L, 51L, 48L, 71L, 78L, 37L, 62L, 59L, 26L,
68L, 103L, 18L, 60L, 4L, 105L, 94L, 7L, 28L, 17L, 108L, 90L,
74L, 108L, 108L, 102L, 108L, 108L, 49L, 41L, 54L, 47L, 58L, 57L,
53L, 55L, 46L, 109L, 118L, 66L, 13L, 13L, 52L, 65L, 66L, 106L,
110L, 110L, 80L, 82L, 79L, 85L, 85L, 112L, 112L, 112L, 79L, 79L,
36L, 111L, 32L, 111L, 85L, 14L, 111L, 112L, 64L, 111L, 111L,
36L, 36L, 63L, 56L, 56L, 99L, 108L, 125L, 123L, 72L, 89L, 101L,
95L, 81L, 81L, 114L, 81L, 61L, 75L, 81L, 100L, 126L), .Label = c("1933-1-1",
"1966-1-1", "1976-1-1", "1977-1-1", "1978-1-1", "1982-1-1", "1993-1-1",
"1995-1-1", "1998-1-1", "1999-1-1", "2000-1-1", "2001-1-1", "2002-1-1",
"2002-5-1", "2003-1-1", "2004-1-1", "2005-1-1", "2005-3-25",
"2005-7-25", "2006-1-1", "2006-12-6", "2007-1-1", "2007-6-8",
"2008-1-1", "2009-1-1", "2009-7-2", "2009-8-20", "2010-1-1",
"2010-1-20", "2010-5-1", "2011-1-1", "2011-3-1", "2011-3-22",
"2011-4-5", "2011-9-27", "2012-1-1", "2012-1-10", "2013-1-1",
"2013-4-1", "2013-4-16", "2013-7-1", "2014-1-1", "2014-7-1",
"2014-7-30", "2015-1-1", "2015-10-12", "2015-10-15", "2015-11-1",
"2015-12-11", "2015-4-1", "2015-5-1", "2015-7-1", "2015-8-28",
"2015-9-1", "2015-9-24", "2016-1-1", "2016-1-2", "2016-1-8",
"2016-12-10", "2016-6-30", "2016-7-6", "2016-9-12", "2017-1-1",
"2017-1-27", "2017-10-24", "2017-10-27", "2017-11-1", "2017-11-17",
"2017-11-9", "2017-12-1", "2017-2-1", "2017-2-2", "2017-4-1",
"2017-6-1", "2017-6-6", "2017-8-1", "2017-9-1", "2017-9-12",
"2018-1-1", "2018-1-23", "2018-1-25", "2018-10-9", "2018-11-1",
"2018-12-1", "2018-12-11", "2018-12-14", "2018-12-3", "2018-3-1",
"2018-3-22", "2018-3-23", "2018-4-1", "2018-5-1", "2018-5-17",
"2018-6-1", "2018-8-9", "2018-9-1", "2018-9-13", "2019-1-1",
"2019-10-1", "2019-10-16", "2019-11-18", "2019-2-11", "2019-2-12",
"2019-2-13", "2019-2-4", "2019-2-7", "2019-3-1", "2019-3-19",
"2019-3-21", "2019-3-22", "2019-4-18", "2019-4-26", "2019-6-1",
"2019-6-13", "2019-6-19", "2019-7-15", "2019-7-17", "2019-7-2",
"2019-8-1", "2019-8-27", "2019-9-1", "2019-9-17", "2020-1-1",
"2020-1-28", "2020-1-9", "2020-10-2", "2020-10-5", "2020-10-9",
"2020-11-5", "2020-2-1", "2020-2-4", "2020-2-6", "2020-5-1",
"2020-5-28", "2020-7-1", "2020-8-24", "2020-9-1", "2021-1-1",
"2021-1-15", "2021-1-26", "2021-1-5", "2021-2-1", "2021-2-2",
"2021-2-22", "2021-3-1", "2021-3-2", "2021-3-9", "NA-1-1"), class = "factor")), class = "data.frame", row.names = c(NA,
-327L))发布于 2021-03-30 22:37:43
您只需要将列y转换为date。
as.Date(df$y, format = "%Y-%m-%d")发布于 2021-03-31 01:38:16
使用lubridate
library(lubridate)
ymd(df$y)https://stackoverflow.com/questions/66872926
复制相似问题