我有这个df
df = data.frame(x = 1:3)
转换成因子
df$x = factor(df$x)
默认级别为
str(df)
现在我们将第2层设置为参考层
df$x = relevel(df$x,ref=2)
到目前为止一切都很好。但是当决定再次将级别1设置为默认级别时,它不起作用
df$x = relevel(df$x,ref=2)
str(df)
df$x = relevel(df$x,ref=1)
str(df)
Appreciatethe帮助。
From?relevel
,
ref: the reference level, typically a string.
我将划掉"typical "。看stats:::relevel.factor
的代码,一个关键的部分是
if (is.character(ref))
ref <- match(ref, lev)
对我来说,这意味着在这个表达式之后,ref
现在是(假设是)一个integer
,对应于索引中的水平。在这种情况下,你的ref=1
是说通过它的索引使用第一层(它已经是第一层)。
尝试使用字符串
relevel(df$x,ref=1)
# [1] 1 2 3
# Levels: 2 1 3
relevel(df$x,ref="1")
# [1] 1 2 3
# Levels: 1 2 3