`move_columns` does not work when passed a variable in .after
shahronak47 opened this issue · 1 comments
shahronak47 commented
Taken from this SO post it seems there is a bug when we use a variable to refer .before
or .after
in move_columns
function.
Consider this example,
df <- data.frame(a = 1:5, b = 10:14, c = letters[1:5])
df
a b c
1 1 10 a
2 2 11 b
3 3 12 c
4 4 13 d
5 5 14 e
move_columns(df, 1, .after = 1) #works fine
b a c
1 10 1 a
2 11 2 b
3 12 3 c
4 13 4 d
5 14 5 e
index <- 1
move_columns(df, 1, .after = index) #doesn't work as expected. `a` goes to last column.
b c a
1 10 a 1
2 11 b 2
3 12 c 3
4 13 d 4
5 14 e 5
packageVersion('sjmisc')
[1] ‘2.8.5’
strengejacke commented
It is possible, you need quasi-quotation:
library(sjmisc)
df <- data.frame(a = 1:5, b = 10:14, c = letters[1:5])
index <- 1
move_columns(df, 1, .after = !!index)
#> b a c
#> 1 10 1 a
#> 2 11 2 b
#> 3 12 3 c
#> 4 13 4 d
#> 5 14 5 e
Created on 2020-10-30 by the reprex package (v0.3.0)
I revised the docs to make this more explicit.