我正在使用lubridate包并应用month函数从日期中提取月份.我在日期字段上运行str命令

Factor w/ 9498 levels "01/01/1979","01/01/1980",..: 5305 1 1 1 1 1 1 1 1 1 ...

> v1$Date<-month(v1$Date)
Error in as.POSIXlt.character(as.character(x), ...) : 
character string is not in a standard unambiguous format

下面是我的数据框的一个例子

https://drive.google.com/file/d/0B6cqWmwsEk20Q2dHblhXZi14Wk0/edit?usp=sharing

我不知道我做错了什么.

推荐答案

?month个国家:

日期时间必须是POSIXct,POSIXlt,Date,Period,chron,yearmon,

你的对象是一个因子,甚至不是一个字符向量(大概是因为stringsAsFactors = TRUE).必须将向量转换为某个datetime类,例如转换为POSIXlt:

library(lubridate)
some_date <- c("01/02/1979", "03/04/1980")
month(as.POSIXlt(some_date, format="%d/%m/%Y"))
[1] 2 4

还有一个便利功能dmy,也可以实现同样的功能(提示由@Henrik提出):

month(dmy(some_date))
[1] 2 4

更进一步,@IShouldBuyABoat给出了另一个提示,dd/mm/yyyy字符格式在没有任何显式强制转换的情况下被接受:

month(some_date)
[1] 2 4

有关格式列表,请参见?strptime.你会发现"标准无歧义格式"代表

默认格式遵循ISO 8601国际标准的规则

R相关问答推荐

Facet_wrap具有不同bin宽度值的图表

手工PCA上的载体与输出双图不匹配

如何使用geom_sf在边界显示两种 colored颜色 ?

过滤矩阵以获得R中的唯一组合

如何使用rmarkdown和kableExtra删除包含折叠行的表的第一列的名称

从开始时间和结束时间导出时间

移除仪表板Quarto中顶盖和车身之间的白色区域

如何通过判断数据框的一列来压缩另一列?

如何将SAS数据集的列名和列标签同时包含在r中GT表的表首?

R如何计算现有行的总和以添加新的数据行

如何在PDF格式的kableExtra表格中显示管道字符?

减go R中列表的所有唯一元素对

有没有办法一次粘贴所有列

从线的交点创建面

用多边形替换地块点

根据r中每行中的日期序列,使用列名序列创建新列

当由base::限定时,`[.factor`引发NextMethod错误

如何在R中创建这些列?

附加中缀操作符

如何修改GT表中组名行的 colored颜色 ?