首页 > 解决方案 > R如何使用%>%“即时”订购DF?

问题描述

假设我有这个 DF

   country confirmed
1  Germany     10910
2 Slovakia      1269
3       US    175663

我想通过 COL “确认”订购。如何在 %>% 内即时执行?

解决方法是这个

DF[order(DF$confirmed),]
   country confirmed
2 Slovakia      1269
1  Germany     10910
3       US    175663

但是如何做到这一点DF %>% order... 呢?

标签: r

解决方案


dplyr, 有arrange做排序

library(dplyr)
DF <- DF %>%
    arrange(confirmed)

-输出

DF
#    country confirmed
#2 Slovakia      1269
#1  Germany     10910
#3       US    175663

如果我们不想DF <-使用%<>%frommagrittr

library(magrittr)
DF %<>%
    arrange(confirmed)

或者,如果我们想使用order,一个选项是对pull列 'confirmed,做orderslice基于那个的数据order

DF %>% 
    pull(confirmed) %>%
    order %>% 
    slice(DF, .)
#   country confirmed
#2 Slovakia      1269
#1  Germany     10910
#3       US    175663

或者另一种方式是

DF %>% 
 pull(confirmed) %>% 
 order %>% 
 `[`(DF, .,)
#   country confirmed
#2 Slovakia      1269
#1  Germany     10910
#3       US    175663

数据

DF <- structure(list(country = c("Germany", "Slovakia", "US"),
confirmed = c(10910L, 
1269L, 175663L)), class = "data.frame", row.names = c("1", "2", 
"3"))

推荐阅读