当我尝试使用以年为字符的现有列创建XTS对象时,我的xts对象自动包含今天的日期而不是我指定的年份。有没有办法只包括这一年?
这是我的代码:
global_totals_ts <- xts(global_totals_m[,-1], as.Date(ts_index, format = "%Y"))
,我得到的输出是:
Christians Muslims Hindus Agnostics Buddhists
1900-05-17 557754602 200318122 202973290 3028610 126956371
1910-05-17 611362430 222347113 223383337 3368564 138064000
1950-05-17 870653646 338066461 323138775 129261500 175510794
1970-05-17 1229448027 570772699 462980539 544290164 234957917
2000-05-17 1987502477 1292170756 822391937 660693376 452314303
2005-05-17 2130604801 1427056087 893077485 669224713 477436475
我想要以下输出:
Christians Muslims Hindus Agnostics Buddhists
1900 557754602 200318122 202973290 3028610 126956371
1910 611362430 222347113 223383337 3368564 138064000
1950 870653646 338066461 323138775 129261500 175510794
1970 1229448027 570772699 462980539 544290164 234957917
2000 1987502477 1292170756 822391937 660693376 452314303
2005 2130604801 1427056087 893077485 669224713 477436475
非常感谢!
答案 0 :(得分:0)
日期对象将始终有天(因为日期有天)。
另一种方法是将其作为日期保留,但按年份计算。然后,日期始终是一年中的第一天,因此,例如,group_by()
操作将按年完成。
library(lubridate)
global_totals_ts <- xts(global_totals_m[,-1], floor_date(as.Date(ts_index, format = "%Y"), "year"))