Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

r

dplyr

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 NAs first. Does anyone know how to do this?

like image 859
Alex Avatar asked Aug 12 '14 07:08

Alex


People also ask

What is the use of the Arrange () function?

arrange() function in R Language is used for reordering of table rows with the help of column names as expression passed to the function.

How would you use Arrange () to sort all missing values to the start?

How could you use arrange() to sort all missing values to the start? (Hint: use is.na() ). The arrange() function puts NA values last. Using desc() does not change that. To put NA values first, we can add an indicator of whether the column has a missing value.

How do I arrange ascending order in R?

To sort a data frame in R, use the order( ) function. By default, sorting is ASCENDING. Prepend the sorting variable by a minus sign to indicate DESCENDING order.

What does arrange () do in R?

The arrange() function lets you reorder the rows of a tibble. It takes a tibble, followed by the unquoted names of columns. For example, to sort in ascending order of the values of column x , then (where there is a tie in x ) by descending order of values of y , you would write the following.


1 Answers

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 
like image 109
akrun Avatar answered Sep 18 '22 12:09

akrun