我想按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()。感激地收到了所有解决方案的提示。
答案 0 :(得分:0)
此问题已通过下载最新版本的dplyr_0.8.0
来解决:
devtools::install_github("tidyverse/dplyr")