2012-03-13 86 views
-1

我似乎無法使lm函數在任何具有0作爲數據值的列上正常工作。這裏是我的代碼:R線性模型無法處理0的值

project.lm = lm(SalePrice ~Lot.Area + Year.Built + Year.Remod.Add + Gr.Liv.Area + 
       Yr.Sold + Bsmt.Unf.SF, project.table) 

但是當我做的project.lm綜上所述,筆者得到數以千計的變量在我的線性模型,其實一個變量的Bsmt.Unf.SF每個值。這發生在值爲0的所有列上;否則,一切工作正常。有任何想法嗎?!?

+4

您的變量可能不會以數字形式存儲,而會以字符或因子形式存儲。通過運行'str(project.table)'來驗證。問題不在'lm'中,而是在您用來導入數據的代碼中。 – joran 2012-03-13 03:51:19

+0

啊,這就是它!那麼我將如何讀取它呢?我只是做了project.table = read.csv(url,header = T) – user983567 2012-03-13 03:58:07

+2

這取決於。 R會嘗試獲取正確的數據類型,但這取決於數據文件是否乾淨。確保數字列中沒有任何字符。你可以用類似於dat $ newcol < - as.numeric(as.character(dat $ oldcol))的東西來轉換列。 – 2012-03-13 05:07:59

回答

0

請參閱read.csvread.table的文檔:有一個名爲stringsAsFactors的參數,默認爲TRUE。將其設置爲FALSE,您可能會更高興:-)

+0

但是在傳入lm之前,字符串仍然需要量化。 – smci 2014-04-09 09:11:30