R 按日期和变量对数据框排序
我需要根据同一列中的日期和变量组对下面的数据框进行排序 DF 我想在下面提到的格式与最新的日期降序DF DF2 我试过下面提到的方法R 按日期和变量对数据框排序,r,dataframe,dplyr,R,Dataframe,Dplyr,我需要根据同一列中的日期和变量组对下面的数据框进行排序 DF 我想在下面提到的格式与最新的日期降序DF DF2 我试过下面提到的方法 DF$new<-ifelse(Output$Date=='AER_ST',1, ifelse(Output$Date=='BER_TT',2,0)) DF2<-arrange(DF, desc(Date), desc(new)) 一个选项是将日期列转换为实际日期,这样文本将转换为NA,并且只保留实际日期。现在
DF$new<-ifelse(Output$Date=='AER_ST',1,
ifelse(Output$Date=='BER_TT',2,0))
DF2<-arrange(DF, desc(Date), desc(new))
一个选项是将日期列转换为实际日期,这样文本将转换为NA,并且只保留实际日期。现在,我们可以用以前的日期值填充这些NAs,并按降序排列这些日期
library(dplyr)
df %>%
mutate(Date1 = as.Date(Date)) %>%
tidyr::fill(Date1) %>%
arrange(desc(Date1)) %>%
select(-Date1)
# Date Value
#1 2019-01-02 100
#2 AER_ST 75
#3 BER_TT 25
#4 2019-01-01 445
#5 AER_ST 220
#6 BER_TT 225
通过Base R可以根据日期、顺序、重新排列列表和rbind进行拆分,即
谢谢:如果某个日期缺少BER_TT行,是否可以在最终数据帧中用0值显示该行。??
DF$new<-ifelse(Output$Date=='AER_ST',1,
ifelse(Output$Date=='BER_TT',2,0))
DF2<-arrange(DF, desc(Date), desc(new))
library(dplyr)
df %>%
mutate(Date1 = as.Date(Date)) %>%
tidyr::fill(Date1) %>%
arrange(desc(Date1)) %>%
select(-Date1)
# Date Value
#1 2019-01-02 100
#2 AER_ST 75
#3 BER_TT 25
#4 2019-01-01 445
#5 AER_ST 220
#6 BER_TT 225
l1 <- split(df, cumsum(!is.na(as.Date(df$Date, '%Y-%m-%d'))))
i1 <- order(as.Date(sapply(l1, function(i) i$Date[1]), '%Y-%m-%d'), decreasing = TRUE)
do.call(rbind, l1[i1])
Date Value
2.4 2019-01-02 100
2.5 AER_ST 75
2.6 BER_TT 25
1.1 2019-01-01 445
1.2 AER_ST 220
1.3 BER_TT 225