Saturday 13 January 2018

r - Reorder levels of a factor without changing order of values

itemprop="text">

I have data frame with some numerical
variables and some categorical factor variables. The order of
levels for those factors is not the way I want them to be.



numbers <-
1:4

letters <- factor(c("a", "b", "c", "d"))
df <-
data.frame(numbers, letters)
df
# numbers letters
# 1 1
a
# 2 2 b
# 3 3 c
# 4 4
d



If I
change the order of the levels, the letters no longer are with their corresponding
numbers (my data is total nonsense from this point
on).



levels(df$letters) <-
c("d", "c", "b", "a")
df
# numbers letters
# 1 1
d
# 2 2 c
# 3 3 b
# 4 4
a



I simply
want to change the level order, so when plotting, the bars are
shown in the desired order - which may differ from default alphabetical
order.



Answer




Use the levels
argument of
factor:



df
<- data.frame(f = 1:4, g = letters[1:4])
df
# f g
# 1 1
a
# 2 2 b

# 3 3 c
# 4 4
d

levels(df$g)
# [1] "a" "b" "c"
"d"

df$g <- factor(df$g, levels = letters[4:1])
#
levels(df$g)
# [1] "d" "c" "b"
"a"


df
# f g
# 1 1 a
# 2 2
b
# 3 3 c
# 4 4 d


No comments:

Post a Comment

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print &q...