R 多种数据类型的日期转换

R Date conversion for multiple data types

使用 as.Date() 函数将 Excel 日期转换为 R 日期非常简单:

as.Date(12345, origin = "1899-12-30")
#> [1] "1933-10-18"

如何将以下内容转换为 R 日期 class?

as.Date(c("-", "TBD", NA, 12345), origin = "1899-12-30")
#> Error in charToDate(x) : 
#>   character string is not in a standard unambiguous format

输出看起来像这样。如果不是 Excel 日期,只需将其标记为 NA.

#> [1] NA
#> [2] NA
#> [3] NA
#> [4] "1933-10-18"

前面:

v <- c("-", "TBD", NA, 12345)
as.Date(as.integer(v), origin="1899-12-30")
# Warning in as.Date(as.integer(c("-", "TBD", NA, 12345)), origin = "1899-12-30") :
#   NAs introduced by coercion
# [1] NA           NA           NA           "1933-10-18"

只要您有 c("-", ..., 12345)12345 就永远不会匹配,因为它被强制转换为向量中的 character。上述技巧起作用的唯一原因是它解除了强制。