R 虚拟编码参考组

R 虚拟编码参考组,r,categorical-data,R,Categorical Data,当使用分类变量在R中使用lm函数建模时,是否有任何方法明确指定哪个组作为虚拟编码的参考组???我所知道的最简单的方法是预先重新编码因子,以便您要用作参考的级别是第一个级别 您可以使用如下函数执行此操作: recodeFactor<-function(f, ref=levels(f)[1]) { lvls<-levels(f) if(ref== lvls[1]) return(f) lvls<-c(ref, setdiff(lvls, ref)) f<-f

当使用分类变量在R中使用lm函数建模时,是否有任何方法明确指定哪个组作为虚拟编码的参考组???

我所知道的最简单的方法是预先重新编码因子,以便您要用作参考的级别是第一个级别

您可以使用如下函数执行此操作:

recodeFactor<-function(f, ref=levels(f)[1])
{
  lvls<-levels(f)
  if(ref== lvls[1]) return(f)

  lvls<-c(ref, setdiff(lvls, ref))
  f<-factor(as.character(f), levels=lvls)
  return(f)
}

recodeFactor您可以在
lm
调用中执行此操作:

y <- rnorm(100, 0, 1)
x <- c(rbinom(50,1,.5),(2*rbinom(50,1,.5)))
lm(y ~ factor(x,c(1,0,2))) # one way
lm(y ~ factor(x,c(0,1,2))) # another way, etc.

y啊,显然,我提供的功能已经存在了。它也可能以更好的性能实现,但为了更好地理解发生了什么,我将在下面留下我的。谢谢@Glen_b.很棒的东西。。非常感谢Nick Sabbe