R:每日数据到每月

R: Daily data to monthly

我有一个很大的 xts 对象,有多个变量。该指数以这种方式每天显示,它对应于确切的天数,但是每个变量在一个月内只有一个观察值。有没有办法从索引中删除日期,只保留年月?

例如,为了说明我的问题,我有 var1 和 2011-06-28 的观测值,var2 和 2011-06-30 的观测值。我想将两者都索引为 2011-06

谢谢

你或许可以这样做: 使用 gsub (用你想要的任何东西替换模式)和正则表达式(定义搜索模式的字符序列,例如字符串)。 这个模式是用正则表达式完成的,它有很多元字符,可以让你做更高级的事情。点 (.) 是通配符,$ 将其固定在后面。所以模式基本上是结束前的任意 3 个字符,并用任何内容替换它们。

your_object<-c("2011-06-28","2011-06-30")
gsub(pattern = "...$", replace = "", x = your_object)

这是将 gsub 与正则表达式结合使用的指南 (http://uc-r.github.io/regex)。

或者,您可以“告诉”R 您正在使用带有 as.Date() 函数的特定格式的日期,然后使用 format() 将其更改为您想要的格式。 像这样:

dates=c("2011-06-28","2011-06-29","2011-06-30","2011-07-1") #test string with dates in original format

dates2 <- format(as.Date(dates,"%Y-%m-%d"), format="%Y-%m") #changing the "%Y-%m-%d" format to  the desired "%Y-%m"

print(dates2) 

编辑:如果您只想更改 xts 的索引: indexFormat(xts_object) <- "%Y-%m"

干杯 克里斯