r语言 - 将因子关联到默认顺序时出现问题?



我有这个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

最新更新