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?
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 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.
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.
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.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With