Simple question, looking for a ‘one-liner’ -type answer, but can’t quite find what I’m looking for in other similar questions.
Want to put an ifelse() conditional inside dplyr::arrange(). Simply put: if x=1 then arrange(df,N) otherwise arrange(df,desc(N)). For completeness, x will only ever either be 1 or -1.
mwe:
x=1; df = data.frame(N=c(-5:5))
I figured arrange(df, ifelse(x==1,N,desc(N))) would work just fine but no luck. Any help?
>Solution :
ifelse is vectorized and is for vectors. It always returns a vector of the same length as the input.
For more general usage, use if(){} else{}.
arrange(df, if(x == 1) N else desc(N))