2013-04-24 112 views
0

我在尋找一種簡單的方式來讀/寫一個基本的數據幀:數據幀,輸入和輸出文件

symbMat <- matrix("AJY", "6A", "6J", 0, 0, ncol=5) 
colnames(symbMat) <- c("Symb1","Symb2","Symb3","lastVstamp","completedRows") 
testFrame<-List(symbMat,matrix(c("date1","date2"))) 

所以testFrame現在看起來像

[[1]] 
Symb1 Symb2 Symb3 lastVstamp completedRows 
[1,] "AJY" "6A" "6J" "0"  "0"   

[[2]] 
    [,1] 
[1,] "date1" 
[2,] "date2" 

所以問題是 函數read.table(「多表」,報頭= TRUE) 給我,把它作爲所有2x6的一個矩陣(用搞砸名稱最後一列)的文件

"Symb1" "Symb2" "Symb3" "lastVstamp" "completedRows" "structure.c..date1....date2.....Dim...c.2L..1L.." 
"1" "AJY" "6A" "6J" "0" "0" "date1" 
"2" "AJY" "6A" "6J" "0" "0" "date2" 

install.packages("MASS") 
library(MASS) 
write.matrix(testFrame,file="MultiTable") 

只是讓文件

AJY,6A,6J,0,0
DATE1,DATE2

這顯然是相當多的信息丟失。此外,沒有一個read.matrix(),所以我不知道該函數的重點是什麼

任何想法?

回答

1

首先,testFrame不是data.frame。 A data.frame是R中非常具體的對象類型。但是,這不影響能夠保存和重新加載數據。有兩套用於保存和加載數據的功能:save()/load()dump()/source()。第一種是創建一種二進制格式,第二種是文本格式(雖然結構與屏幕上打印的不同)。

固定在你的榜樣錯別字:

symbMat <- matrix(c("AJY", "6A", "6J", 0, 0), ncol=5) 
colnames(symbMat) <- c("Symb1","Symb2","Symb3","lastVstamp","completedRows") 
testFrame<-list(symbMat,matrix(c("date1","date2"))) 

testFrame

> testFrame 
[[1]] 
    Symb1 Symb2 Symb3 lastVstamp completedRows 
[1,] "AJY" "6A" "6J" "0"  "0"   

[[2]] 
    [,1] 
[1,] "date1" 
[2,] "date2" 

隨着save()load()

save(testFrame, file="temp.RData") 
load(file="temp.RData") 

隨着dump()source()

dump("testFrame", file="temp.R") 
source(file="temp.R") 

請注意引用dump()的第一個參數。 temp.R然後

testFrame <- 
list(structure(c("AJY", "6A", "6J", "0", "0"), .Dim = c(1L, 5L 
), .Dimnames = list(NULL, c("Symb1", "Symb2", "Symb3", "lastVstamp", 
"completedRows"))), structure(c("date1", "date2"), .Dim = c(2L, 
1L))) 

其表示對象的方式作爲dput()相同一樣。

+0

謝謝,save()和load()對我來說足夠了。 – hedgedandlevered 2013-04-24 19:11:55