2011-11-18 79 views

回答

48

設置options(stringsAsFactors = FALSE)在您的R會話開始時或您的.RProfile中。

由於下面的評論可能暗示,stringsAsFactors是R社區內的一個有爭議的話題。你覺得這個默認值有多刺激可能有點取決於你花了多少時間用R來適應許多「標準」統計模型(lmglm等)。這些模型擬合和相關函數中的許多都是使用因子數據類型構建的。

如果您將大部分時間花在做其他更「普通」的數據分析類型上,您可能會發現這種默認更令人惱火。

由於以下原因,它被廣泛認爲是全球性設置stringsAsFactors = FALSE的危險:共享代碼時可能導致嚴重混淆。事實上,即使你主要是單獨工作,如果你堅持用stringsAsFactors = FALSE來運行R,那麼參與像StackOverflow這樣的在線社區可能會非常棘手:你對OP問題的回答可能不適用於OP,或者你可能無法複製錯誤,看!

當然,每個人都可以自己選擇如何最好地爲自己管理這些風險。

+24

在您的'.Rprofile'中設置此設置可能會有點風險,因爲您的代碼已不再可移植。由於我做了很多教學,我決定在傳遞代碼時忘記這個選項太容易了。 – csgillespie

+11

它確實應該是默認的。在極其奇怪的情況下殺死我的生產力,很難調試因爲它而發生的錯誤。剛纔我從一個文件讀取繪圖參數,忘了它,並且繪圖錯誤,同時仍然顯示正確的標題和軸描述... –

+0

它應該是默認的,例如as.data.frame()應該保留底層數據它們插入到數據框中的對象的結構。 –