我在R中按月/年格式排序时遇到问题
我有%m/%Y
格式的数据,但尝试使用
df_prod<-df_prod[order(as.Date(df_prod$date,format="%m/%Y")),]
数据框没有排序。我得到了一个类似文本的订单(01 / 2000,01 / 2001,01 / 2002)
其他细节:
我正在对dplyr
格式排序良好的数据框执行%m/%Y
聚合:
df_prod<-df %>%
group_by(date,comp_id) %>%
summarise(a_prod=prod(1+TRT)-1)
谢谢
答案 0 :(得分:1)
由于@lmo已经提到仅使用%m/%Y
不会创建有效日期。一种解决方案是使用as.yearmon
包中的zoo
。
library(zoo)
df_prod<-df_prod[order(as.yearmon(df_prod$date,format="%m/%Y")),]
答案 1 :(得分:0)
%m/%Y
是一个棘手的约会起始格式,如果这是您最终需要的:
从字符串中获取日期组件:
aa <- format(Sys.Date(), "%m/%Y")
m <- as.numeric(substr(aa, 1, 2))
y <- as.numeric(substr(aa, 4, 8))
然后,您可以将它们粘贴到日期格式中并排序:
as.Date(paste(y, "-", m, "-01", sep = ''))