2014-10-22 614 views
1

我有兩個變量:decsorgs2和regionfactor(這是一個因素 「區域」)R中的這個錯誤是什麼?

freq(decsorgs2) 
decsorgs2 
      Frequency Percent 
0 Disagree  365 53.76 
1 Agree   314 46.24 
Total   679 100.00 

freq(regionfactor) 
regionfactor 
     Frequency Percent 
1   12 1.767 
2   82 12.077 
3   128 18.851 
4   64 9.426 
5   138 20.324 
6   43 6.333 
7   53 7.806 
8   57 8.395 
9   102 15.022 
Total  679 100.000 

我試圖做一個ANOVA與AOV()。

aov(decsorgs2~regionfactor) 
    Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) : 
    NA/NaN/Inf in 'y' 
    In addition: Warning message: 
In model.response(mf, "numeric") : NAs introduced by coercion 

什麼是這個錯誤?我不明白這些條款。謝謝

編輯:好吧,我做了冰雹瑪麗隨機嘗試和記錄decsorgs2。

最初我有:

decsorgs2 =重新編碼(DECSORGS, 「4:5 = '0不同意'; 1:2 = '1同意'」)

現在我使用:

decsorgs2 =重新編碼(DECSORGS, 「4:5 = 0; 1:2 = 1」)

它似乎工作。但爲什麼?爲什麼decsorgs2必須是數字的,如果考慮可變區域的目的是爲了使它被看作是分類的?我怎麼知道哪一個必須是數字和哪個分類?

+0

可能需要將'Inf','NaN'值(如果存在)轉換爲'NA'。 – akrun 2014-10-22 06:31:07

+0

謝謝,但沒有NA,Inf值。我們可以在freq()輸出中看到。 – Hutchins 2014-10-22 06:47:43

+0

請顯示一些產生錯誤的示例數據集。這只是您顯示錯誤的猜測。 – akrun 2014-10-22 06:48:44

回答

1

aov需要一個連續的響應變量。你傳遞一個character變量,它被脅迫numeric

y <- c("0 Disagree", "1 Agree") 
as.numeric(y) 
#[1] NA NA 
#Warning message: 
#NAs introduced by coercion 

y <- c("0", "1") 
as.numeric(y) 
#[1] 0 1 

你需要重新考慮你的統計方法。

+0

謝謝,但爲什麼是這種情況?爲什麼我必須將區域變成字符變量?對於方差分析,因變量應該是數字還是字符? – Hutchins 2014-10-22 18:32:25

+1

@Hutchins你應該學習一些教科書。 ANOVA假定依賴是一個連續變量(數值),獨立(s)是一個因子變量。 – Roland 2014-10-23 06:52:17