相关疑难解决方法(0)

为什么在R中使用strptime解析"%Y-%m"给出NA结果,但"%Y-%m-%d"有效?

我在R中得到的结果我不明白

如果我使用strptime格式为%Y-%m的年份和日期(如"2009-12"),我会得到NA结果.但是如果我添加一天,比如"2009-12-01",并相应地更改格式字符串,我会得到一个结果.例:

> strptime("2009-12",format="%Y-%m")
[1] NA
> strptime("2009-12-03",format="%Y-%m-%d")
[1] "2009-12-03"
Run Code Online (Sandbox Code Playgroud)

这是为什么?

更新:我很好奇的是为什么strptime不会解析一年零一个月,而且它不会这样做的原因似乎很奇怪,因为它确实解析了一年,或一年 - 和 -一天:

> strptime("2009",format="%Y") # year only. Works. Uses current month and day as defaults.
[1] "2009-12-02"
> strptime("2009-03",format="%Y-%d") # year and day. Works. Uses current month as default.
[1] "2009-12-03"
> strptime("2009-03",format="%Y-%m") # year and month. Doesn't work. ?
[1] NA
Run Code Online (Sandbox Code Playgroud)

更新解释为什么这不是重复 在这个问题之后几年问了可能的副本,它关注的是一个单独的API R:asDate函数.这个问题是关于3.1.3中仍然适用的strptime功能的怪癖R.

datetime r

5
推荐指数
1
解决办法
4244
查看次数

将具有日期格式的字符串列表/向量转换为带有R的posix日期类

我有一个字符串列表,我们的日期格式,我想将其转换为我可以用R操作的posix日期列表,我该怎么做?

这就是我所拥有的,但我最终得到了一个列表列表:

 a <- c("2009.01.01 00:00:00", "2009.01.01 00:00:00")

z <- lapply(a,function(x){strptime(x, "%Y.%m.%d %H:%M:%S")})

> z <- lapply(a,function(x){strptime(x, "%Y.%m.%d %H:%M:%S")})
> summary(z)
     Length Class   Mode
[1,] 1      POSIXlt list
[2,] 1      POSIXlt list
Run Code Online (Sandbox Code Playgroud)

statistics timestamp r

4
推荐指数
1
解决办法
4246
查看次数

标签 统计

r ×2

datetime ×1

statistics ×1

timestamp ×1