2012-04-03 10 views
3

私は、write.table()をデータフレームをRに保存するときに、特定の因子変数のレベルを設定した順序を保存しないことに気付きました。データフレームのレベルの順序を保存する方法は?

虹彩中の種のレベルを確認する:

> levels(iris$Species) 
[1] "setosa"  "versicolor" "virginica" 

レベルの順序変更:

> iris$Species <- factor(iris$Species, levels=c("virginica","setosa","versicolor")) 
> levels(iris$Species) 
[1] "virginica" "setosa"  "versicolor" 

データフレームを保存し、新しいものにロード:

> write.table(iris, 'iris_new.table') 
> newIris <- read.table('iris_new.table') 

新しいデータフレームの順序を確認する:

> levels(newIris$Species) 
[1] "setosa"  "versicolor" "virginica" 

データフレームを保存して他のRセッションにエクスポートするにはどうすればよいですか?

+1

'save'または' saveRDS'を試してください。 –

答えて

6

おそらくsaveloadを使用します。

save(iris,file = "Iris.RData") 

ファイルにRオブジェクト自体を保存して、あなたはloadを使用して、ワークスペースに戻ってそれをロードします。 loadがオブジェクトを返さないときは混乱しないでください。それはあなたのワークスペースにロードされるので、ls()と入力すると、それが表示されます。

+0

+1「ロード」の仕組みを説明するために、私が最初に使ったとき、私は本当に混乱していました。 – pedrosaurio

関連する問題