在远处计算vif:在`[[<;-.data.frame`(`*tmp*`,i,value=c)中出错(828L,828L,828L,828L,:替换有4928行,数据有704行

在远处计算vif:在`[[<;-.data.frame`(`*tmp*`,i,value=c)中出错(828L,828L,828L,828L,:替换有4928行,数据有704行,r,R,您好,我正试图在faraway软件包中计算方差通货膨胀系数(vif)。我对R非常陌生,请耐心听我说 这是我的数据集: str(SMB) 'data.frame': 1266 obs. of 30 variables: $ X2011 : int 550 547 543 546 544 548 545 549 42 49 ... $ CatchID : num 0.5 0.2 0.6 0.1 0.7 0.3 0.8 0.4 1 2 ... $ Stomach

您好,我正试图在
faraway
软件包中计算方差通货膨胀系数(vif)。我对R非常陌生,请耐心听我说

这是我的数据集:

str(SMB)
'data.frame':   1266 obs. of  30 variables:
 $ X2011        : int  550 547 543 546 544 548 545 549 42 49 ...
 $ CatchID      : num  0.5 0.2 0.6 0.1 0.7 0.3 0.8 0.4 1 2 ...
 $ StomachID    : int  5 2 6 1 7 3 8 4 NA 304 ...
 $ Date         : Factor w/ 68 levels "2011-06-18","2011-06-22",..: 1 1 1 1 1 1 1 1 43 43 ...
 $ Lake         : Factor w/ 9 levels "Beaver Lake",..: 6 6 6 6 6 6 6 6 1 1 ...
 $ Year         : int  2011 2011 2011 2011 2011 2011 2011 2011 2012 2012 ...
 $ Site.        : int  1 1 1 1 1 1 1 1 1 2 ...
 $ Set.         : int  0 0 0 0 0 0 0 0 1 2 ...
 $ SampleMeth   : Factor w/ 3 levels "GN","MN","SG": 1 1 1 1 1 1 1 1 1 1 ...
 $ Habitat      : Factor w/ 6 levels "","BARE","MIX",..: 3 3 3 3 3 3 3 3 1 6 ...
 $ DegDays      : int  209 209 209 209 209 209 209 209 NA 155 ...
 $ Weight.g.    : num  1093 635 1583 607 1651 ...
 $ Length.mm.   : num  453 360 480 345 480 373 482 400 195 269 ...
 $ CondFactor   : Factor w/ 147 levels "#DIV/0!","0",..: 47 65 72 77 78 79 82 88 84 61 ...
 $ Age          : num  NA NA NA NA NA NA NA NA NA 2.3 ...
 $ Species      : Factor w/ 6 levels "CT","KO","PMB",..: 5 5 5 5 5 5 5 5 5 5 ...
 $ Fish..Set    : int  8 8 8 8 8 8 8 8 4 4 ...
 $ SppDiv.Set   : int  1 1 1 1 1 1 1 1 1 1 ...
 $ Fish..Spp.Set: int  8 8 8 8 8 8 8 8 1 3 ...
 $ Soak.Hrs.    : num  1.2 1.2 1.2 1.2 1.2 1.2 1.2 1.2 2.02 2.02 ...
 $ CT_CPUE      : num  0 0 0 0 0 0 0 0 0 0 ...
 $ RB_CPUE      : num  0 0 0 0 0 0 0 0 0 0 ...
 $ SMB_CPUE     : num  6.67 6.67 6.67 6.67 6.67 6.67 6.67 6.67 0.5 1.49 ...
 $ KOK.CPUE     : num  0 0 0 0 0 0 0 0 0 0 ...
 $ YP.CPUE      : Factor w/ 21 levels "#DIV/0!","0",..: 2 2 2 2 2 2 2 2 2 2 ...
 $ PMB.CPUE     : num  0 0 0 0 0 0 0 0 0 0 ...
 $ TotalEn      : num  33894 892 32386 1901 32764 ...
 $ PreyDiv      : int  1 2 1 5 1 3 1 2 NA 1 ...
 $ CrayPresent  : int  0 0 0 0 0 0 0 0 0 0 ...
 $ CrayAbund    : num  0 0 0 0 0 0 0 0 0 0 ...

vif(SMB[,-30]) or vif(SMB)
当我尝试计算vif时,我得到以下错误:


[[请提供一个可复制的示例。我使用了
car::vif(model)
在过去,它需要一个模型而不是一个数据帧。你应该检查
faraway
软件包是否也是如此。我已经解决了这个问题。我的一个变量是分类变量,只能对连续数据计算VIF。faraway软件包使用数据帧,这对原始探索非常有帮助在我的例子中。谢谢大家的支持!我的解决方案是创建一个只包含必要连续变量的新向量(去掉我不需要的列)SMB5