2013-08-01 67 views
0

我有一段時間注入了代碼,他們不是首選的因素。如何從矩陣,矢量等中移除因子?

如何從矩陣中刪除所有因子?矢量?一個data.frame?下面



問題更新我想這個問題就足夠一般,但它顯然不是。

因素當使用melt時蠕變,所以我正在尋找一種方法來執行熔化命令後刪除因素。正如您從下面的示例代碼中看到的那樣,因子方法(不確定要調用的內容)爲第3列輸入。我認爲這是因爲此列是文本。我需要刪除這個因素,因爲我從矩陣中檢索數據,所以3的因子是沒有意義的(在這種情況下)。

names(airquality) <- tolower(names(airquality)) 
data <- melt(airquality, id=c("month", "day")) 
is.factor(data[,3]) 
+0

Matr冰不能含有因素。你可以設置'options(stringsAsFactors = FALSE)'來防止發生自動強制,但這可能會導致其他人的代碼出現問題,因爲他們可能依賴它。 –

+0

UGH!顯然,我需要學會以某種方式擁抱因素!我希望避免通過這個項目的結束,但也許我不能!現在做一些搜索,但如果你們都有很好的資源,我會把我能得到的東西拿到手! –

+1

這是重複的;馬雷克的[答案](http://stackoverflow.com/a/2853231/967840)將爲你工作:'我< - sapply(數據,is.factor); data [i] < - lapply(data [i],as.character)' – GSee

回答

1

如果你想具體的數據幀轉換爲要素自由,我會參考這裏:Convert data.frame columns from factors to characters

數據框被命名爲鮑勃:

bob <- data.frame(lapply(bob, as.character), stringsAsFactors=FALSE) 

另外,如果你想在一個特定的數據框中讀取並且從頭開始沒有任何因素,您可以編寫:

file <- read.table(pathtoFile, stringsAsFactors=F) 
+1

這是「讓它重現性」的人們會感到沮喪的地方,因爲我的問題只發生在使用「融化」之後。我現在正在更新我的問題。 –

+2

@AaronBrown也許[另一個答案](http://stackoverflow.com/a/2853231/967840)這個答案鏈接將會做你想做的事情。 – GSee