Resetting inside the environment does not work

I have data.frame and I would like to include one of the factor levels to put it first. However, using the environment withindoes not work. (I'm a newbie, so forgive me if it's easy.)

My data frame:

df <- as.data.frame(matrix(sample(c("Yes","No"),20,replace=TRUE),ncol=1))
levels(df$V1)
[1] "No"  "Yes"

Now reordering factor levels with relevel:

df <- within(df, relevel(V1, ref="Yes"))
levels(df$V1)
[1] "No"  "Yes"

In other words, it doesn't seem to relevelwork. It must be because I am using the environment poorly within(), because if I do it "directly", it works:

df$V1 <- relevel(df$V1, ref="Yes")
> levels(df$V1)
[1] "Yes" "No" 

What am I doing wrong?

+4
source share
1 answer

I think you need

df <- within(df, V1 <- relevel(V1, ref="Yes"))

relevel , . df, -. , ,

df <- transform(df, V1 = relevel(V1, ref="Yes"))

(. plyr/dplyr mutate, transmute...)

( ), (.. ), , transform, with, within, subset (dplyr...), ,

df[vars.to.relevel] <- lapply(df[vars.to.relevel],relevel,ref="Yes")   
+3

All Articles