How to have NA's displayed first using arrange()

dplyr, r

Solution

You could also do:

 m %>%
 arrange(!is.na(wt), wt) #@Spacedman's dataset
 #    mpg cyl  disp  hp drat    wt  qsec vs am gear carb
 #1  18.7   8 360.0 175 3.15    NA 17.02  0  0    3    2
 #2  24.4   4 146.7  62 3.69    NA 20.00  1  0    4    2
 #3  22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
 #4  21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
 #5  21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
 #6  22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
 #7  21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
 #8  19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
 #9  18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
 #10 14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4

Problem

Sample data: ``` temp = data.frame(col = list(NA, 1, 2, 3) ) ``` Using `arrange`: ``` temp %>% arrange(col) ``` gives ``` col 1 1 2 2 3 3 4 NA ``` and ``` temp %>% arrange(desc(col)) ``` gives ``` col 1 3 2 2 3 1 4 NA ``` I would like ``` col 1 NA 2 3 3 2 4 1 ``` that is, to put `NA`s first. Does anyone know how to do this?

Original source

Related problems