簡體   English   中英

Model.matrix對比誤差

[英]Model.matrix contrast error

我有一個動態字符串來創建model.matrix 字符串的值如下:

total_matrix_str
[1] "model.matrix( ~ date + MDSE_ITEM_I + COLR_N + SLS_TYPE_GRP_C + dayofwk +
 MDSE_ITEM_REF_I + WK_END_D + GREG_D + SIZE_N + MDSE_STYL_N + COLR_FMLY_N + LATTD_I 
+ LNGTD_I + weekend + dsp + assort_size + colr_per + pctTillDate + weeknr + MEANTEMPM 
+ MEANVISM + MEANWINDSPDM + MAXHUMIDITY + MINHUMIDITY + MEANDEWPTM + MEANPRESSUREM 
+ FOG + RAIN + THUNDER ,data =  total ,
contrasts.arg =list( MDSE_ITEM_I=contrasts(total$MDSE_ITEM_I,contrasts = F) , 
CO_LOC_I=contrasts(total$CO_LOC_I,contrasts = F) ,
COLR_N=contrasts(total$COLR_N,contrasts = F) ,
dayofwk=contrasts(total$dayofwk,contrasts = F) ,
SIZE_N=contrasts(total$SIZE_N,contrasts = F) ,
MDSE_STYL_N=contrasts(total$MDSE_STYL_N,contrasts = F) ,
COLR_FMLY_N=contrasts(total$COLR_FMLY_N,contrasts = F) ,
assort_size=contrasts(total$assort_size,contrasts = F) ,
weeknr=contrasts(total$weeknr,contrasts = F) ))"

以下是分類變量的不同值計數:

> length(unique(total$MDSE_ITEM_I))
[1] 30
> length(unique(total$CO_LOC_I))
[1] 5
> length(unique(total$COLR_N))
[1] 6
> length(unique(total$dayofwk))
[1] 7
> length(unique(total$SIZE_N))
[1] 9
> length(unique(total$MDSE_STYL_N))
[1] 6
> length(unique(total$COLR_FMLY_N))
[1] 4
> length(unique(total$assort_size))
[1] 7
> length(unique(total$weeknr))
[1] 7

仍然此命令導致錯誤,如下所示:

total_matrix <- eval(parse(text = total_matrix_str))
Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) : 
  contrasts can be applied only to factors with 2 or more levels

為什么我會收到此錯誤的任何線索? 如何通過自動檢測這種情況動態地解決錯誤?

由於一個字符串變量的單個唯一值而導致出現此問題。 用Gregor的話來說:“所有非整數/數值變量都將具有對比,無論是默認對比還是您指定的對比。您的compares.arg會覆蓋您指定的某些變量的默認對比-其他任何類別變量都將獲得默認對比”。 因此,基本上所有因數和字符串變量都不可避免地會產生對比,如果任何因數或字符串變量只有一個唯一值(即使未明確定義對比),也會失敗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM