如何使用dplyr :: arrange对NA进行排序?

时间:2019-02-06 23:43:17

标签: r dplyr

我想按flights的升序对dep_time进行排序,其中NA首先使用dplyr中的arrange的{​​{1}} 。 dplyr_0.8.0的默认设置是列出arrange的最后一个。

我以为

NA

可以工作,但是arrange(flights,desc(is.na(dep_time)),dep_time) 仍然排在最后。实际上,

NA

desc(is.na(dep_time)) 

产生相同的排列。为什么会这样,如何获得所需的排序?

编辑:这是一个最小的,可复制的示例。

is.na(dep_time)

这是输出。

library(tidyverse)
set.seed(1)
df <- tibble(x = sample(c(NA,NA,1:4)))
arrange(df,desc(is.na(x)),x)
arrange(df,is.na(x),x)

如果我... > arrange(df,desc(is.na(x)),x) # A tibble: 6 x 1 x <int> 1 1 2 2 3 3 4 4 5 NA 6 NA > arrange(df,is.na(x),x) # A tibble: 6 x 1 x <int> 1 1 2 2 3 3 4 4 5 NA 6 NA 然后对变量mutate(ind = is.na(x))而不是表达式ind进行排序,它将按预期工作。 这是我的sessionInfo()。感激地收到了所有解决方案的提示。

1 个答案:

答案 0 :(得分:0)

此问题已通过下载最新版本的dplyr_0.8.0来解决:

devtools::install_github("tidyverse/dplyr")