【问题标题】:A problem when releveling a factor to the default order?将因子重新调整为默认顺序时出现问题?
【发布时间】:2022-11-19 00:07:16
【问题描述】:

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

感谢帮助。

【问题讨论】:

  • 在修改后的关卡上再次尝试df$x <- relevel(df$x, ref=2)。它采用第二个参数,这显然已更改。

标签: r factors levels


【解决方案1】:

来自?relevel

     ref: the reference level, typically a string.

我将关闭“通常”。查看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

【讨论】:

  • 太感谢了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-11
  • 1970-01-01
  • 2011-04-04
相关资源
最近更新 更多