从R中的日期提取月份和年份

从R中的日期提取月份和年份,r,date,R,Date,我试过很多方法,但都没有用。我有一个日期(YYYY-MM-DD)的数据,我试图只获取月份和年份的数据,例如:MM-yyy或yyy-MM 最后,我希望它看起来像这样: ID Date Month_Yr 1 2004-02-06 2004-02 2 2006-03-14 2006-03 3 2007-07-16 2007-07 ... ... ... 我这样做是希望在一段时间内,通过大量订单,在一个月内平均赚取利润。任

我试过很多方法,但都没有用。我有一个日期(YYYY-MM-DD)的数据,我试图只获取月份和年份的数据,例如:MM-yyy或yyy-MM

最后,我希望它看起来像这样:

ID    Date         Month_Yr
1     2004-02-06   2004-02
2     2006-03-14   2006-03
3     2007-07-16   2007-07
...   ...          ...

我这样做是希望在一段时间内,通过大量订单,在一个月内平均赚取利润。任何帮助,或在正确的方向上推动,都将不胜感激

这将使用指定格式向您的
data.frame
添加一个新列

df$Month_Yr <- format(as.Date(df$Date), "%Y-%m")

df
#>   ID       Date Month_Yr
#> 1  1 2004-02-06  2004-02
#> 2  2 2006-03-14  2006-03
#> 3  3 2007-07-16  2007-07

# your data sample
  df <- data.frame( ID=1:3,Date = c("2004-02-06" , "2006-03-14" , "2007-07-16") )
使用子字符串

d = "2004-02-06"
substr(d,0,7)
>"2004-02"

下面是另一个解决方案,它使用一个专门用于在R中处理日期和时间的包:

库(tidyverse)
图书馆(lubridate)
(df#A tibble:3 x 2
#>身份证日期
#>         
#> 1     1 2004-02-06
#> 2     2 2006-03-14
#> 3     3 2007-07-16
df%>%
变异(
日期=ymd(日期),
月份年=格式ISO8601(日期,精度=“ym”)
)
#>#tibble:3 x 3
#>ID日期月份\年
#>            
#> 1     1 2004-02-06 2004-02 
#> 2     2 2006-03-14 2006-03 
#> 3     3 2007-07-16 2007-07

由(v0.3.0)

数据创建于2020-09-01。table包在不久前引入了
IDate
类和
zoo
-类包函数,用于检索月、日等(选中
?IDate
)。因此,您现在可以通过以下方式提取所需信息:

require(data.table)

dfzoo
package具有
as的功能。yearmon
可以帮助转换

require(zoo)

df$ym<-as.yearmon(df$date, "%Y %m")

require(动物园)
df$YM可能重复的可能重复的
d = "2004-02-06"
substr(d,0,7)
>"2004-02"
require(zoo)

df$ym<-as.yearmon(df$date, "%Y %m")