按数据框中的月份和年份排序[重复]

问题描述 投票:0回答:2

我在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)

谢谢

r dataframe
2个回答
1
投票

由于@lmo已经提到仅使用%m/%Y不会创建有效日期。一种解决方案是使用来自as.yearmon包的zoo

library(zoo)    
df_prod<-df_prod[order(as.yearmon(df_prod$date,format="%m/%Y")),]

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 = ''))
© www.soinside.com 2019 - 2024. All rights reserved.