R 这是什么原因造成的;条件具有长度>;1且仅使用第一个元素“;glmmLASSO出错?

R 这是什么原因造成的;条件具有长度>;1且仅使用第一个元素“;glmmLASSO出错?,r,R,我在R中使用glmmLASSO包来运行惩罚回归。据我所知,我使用的语法与软件包附带的演示完全相同,因此我很难理解为什么会出现错误。任何帮助都将不胜感激。(我知道网站上有很多关于这个错误的问题,但我读到的那些问题似乎没有帮助。) (我正在使用足球演示中建议的第一种确定lambda的方法。) 编辑:我在这里使用随机值添加了一些示例数据:glm1是否有多个类?如果是这样,If(类(glm1)!=“try error”) {BIC_vec[j]非常感谢您快速而详细的回复!然而,glm1只有一个类。cla

我在R中使用glmmLASSO包来运行惩罚回归。据我所知,我使用的语法与软件包附带的演示完全相同,因此我很难理解为什么会出现错误。任何帮助都将不胜感激。(我知道网站上有很多关于这个错误的问题,但我读到的那些问题似乎没有帮助。)

(我正在使用足球演示中建议的第一种确定lambda的方法。)


编辑:我在这里使用随机值添加了一些示例数据:

glm1是否有多个类?如果是这样,
If(类(glm1)!=“try error”)

{BIC_vec[j]非常感谢您快速而详细的回复!然而,
glm1
只有一个类。
class(glm1)
返回
[1]“glmmLasso”
。您能提供您得到的确切警告消息吗?以下是我在前两次迭代中得到的:
警告消息:1:In est.glmmLasso.re(fix=fix,rnd=rnd,data=data,…:应将群集变量指定为因子变量!2:In if(s>1)警告(“随机坡度未标准化回位!”):条件的长度大于1,只使用第一个元素
。我得到第一个警告一次,然后每次迭代都会产生第二个警告的重复。感谢您的回复!我得到的错误就是我得到的确切警告。我应该注意到我将所有聚类变量转换为因子,并标准化了pred卢旺达问题国际法庭。
library(glmmLasso)
library(MASS)
library(lme4)

lambda <- seq(500,0,by=-5)
BIC_vec<-rep(Inf,length(lambda))
PQL<-glmmPQL(Rating~1+AbrCon+BeaUgl+BigSma+DanSaf+DelRug+ExcCal+FasSlo+GooBad+HapSad+HarSof+HrsMel+HeaLig+InhFre+IntUni+MasFem+OrdUni+PasAct+PleUnp+ReaFan+ShaRou+SimCom+SolNon+StrWea+StrDis+TenRel,random = list(~1|Subject,~1|Nonword, ~1|Image), family = gaussian(link = "identity"), data=data)
Delta.start<-c(as.numeric(PQL$coef$fixed),rep(0,6),as.numeric(t(PQL$coef$random$Subject)),as.numeric(t(PQL$coef$random$Nonword)),as.numeric(t(PQL$coef$random$Image)))
Q.start<-as.numeric(VarCorr(PQL)[c(2, 4, 6)])
Q.start<-as.matrix(Q.start)
family = gaussian(link = identity)

    for(j in 1:length(lambda)){print(paste("Iteration ", j,sep=""))

      glm1 <-
 try(glmmLasso(Rating~1+AbrCon+BeaUgl+BigSma+DanSaf+DelRug+ExcCal+FasSlo+GooBad+HapSad+
HarSof+HrsMel+HeaLig+InhFre+IntUni+MasFem+OrdUni+PasAct+PleUnp+ReaFan+
ShaRou+SimCom+SolNon+StrWea+StrDis+TenRel, rnd = list(Subject=~1, Nonword=~1, Image=~1),  family = family, data = data, 
lambda=lambda[j],switch.NR=T,final.re=TRUE,control=list(start=Delta.start,q_start=Q.start)), silent=TRUE)  
      if(class(glm1)!="try-error")
      { BIC_vec[j]<-glm1$bic}}
[1] "Iteration 1"
the condition has length > 1 and only the first element will be used
[1] "Iteration 2"
the condition has length > 1 and only the first element will be used
x = glm(mpg ~ wt, data=mtcars)

class(x)
[1] "glm" "lm"
class(x) != "lm"
[1] TRUE  FALSE
if(class(x) != "lm") "Is not class lm" else "Is class lm"
[1] "Is not class lm"
Warning message:
In if (class(x) != "lm") "Is not class lm" else "Is class lm" :
  the condition has length > 1 and only the first element will be used
all(class(x) != "lm"))
[1] FALSE
if(all(class(x) != "lm")) "Is not class lm" else "Is class lm"
[1] "Is class lm"
if(all(class(glm1) != "try-error"))