[英]Sort by dates and value R
我有這個數據框:
a <- c(1,2,3,4,5)
b <- c(100, 300, NA, 430, 270)
c <- c('2018-02-01', '2020-02-17', '2019-10-24', '2019-10-24', '2020-02-17')
df <- data.frame(a,b,c)
names(df) <- c('id', "value", "Date")
我想要的只是按降序對Date
和value
進行排序。 但是我發現日期可以通過使用rev
進行排序,但對於 NA 順序不正確:
df[rev(order(df$Date, df$value)),] ##
我想要的結果應該是這樣的:
id value Date
2 2 300 2020-02-17
5 5 270 2020-02-17
4 4 430 2019-10-24
3 3 NA 2019-10-24
1 1 100 2018-02-01
任何建議在此數據框中處理 NA 而不丟棄它。
您可以嘗試dplyr
函數,因為默認情況下, arrange()
dplyr
NA
值排序到最后:
df %>%
arrange(desc(Date),desc(value))
給出:
id value Date
1 2 300 2020-02-17
2 5 270 2020-02-17
3 4 430 2019-10-24
4 3 NA 2019-10-24
5 1 100 2018-02-01
使用na.last = FALSE
應該可以解決問題:
df[rev(order(df$Date, df$value, na.last = FALSE)),]
如果你想使用 data.table 包,你可以這樣做:
library(data.table)
setorderv(df, cols = c("Date","value"), order = -1, na.last=TRUE)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.