R語言:數據輸出至文件

from:http://r.rzaixian.com/cookbook/how-to-write-data-into-file.html


問題

若是你想將數據寫進一個文件,應該怎樣操做?html

解決方案

寫入分隔符文本文件

用 write.csv() 將數據寫入一個文件是最簡單的方法。 write.csv() 默認包括行名,可是這一般是沒必要要的,這種默承認能會致使迷惑。數據結構

# 一個樣本數據框data <- read.table(header=TRUE, text='
 subject sex size       1   M    7
       2   F    NA
       3   F    9
       4   M   11
 ')# 寫入文件,取消默認行名write.csv(data, "data.csv", row.names=FALSE)# 同上,只是‘NA’由空白格代替write.csv(data, "data.csv", row.names=FALSE, na="")# 使用製表符,取消行名和列名write.table(data, "data.csv", sep="\t", row.names=FALSE, col.names=FALSE)

保存爲 R 數據格式

write.csv() 和 write.table() 與其它數據分析程序的互操做性是最好的。然而,它們不會保護數據結構的特殊屬性,如列是否爲字符型或因素,或者因素水平的順序。爲了作到這一點,它須要在特殊的 R 格式下寫出來。ide

下面是三種主要的方法:spa

第一個方法:輸出R源代碼,運行時,將從新建立該對象。這針對大多數數據對象,但它可能沒法重建一些更復雜的數據對象。版本控制

# 保存爲文本格式,容易被 R 加載dump("data", "data.Rdmpd")# 能夠保存多個對象dump(c("data", "data1"), "data.Rdmpd")# 從新加載數據 source("data.Rdmpd")# 當加載數據時,原始數據的名稱將自動被使用

下一個方法是寫出 RDS 格式的數據對象,這種格式能夠是二進制的,也能夠是 ASCII。二進制格式更緊湊,ASCII 格式在像 Git 版本控制系統時則更高效。orm

# 二進制 RDS 格式保存單個對象saveRDS(data, "data.rds")# 或者,用 ASCII 格式saveRDS(data, "data.rds", ascii=TRUE)# 從新加載數據data <- readRDS("data.rds")

用 RData 格式能夠將多個對象保存到一個的文件.htm

# 二進制 RData 格式保存多個對象save(data, file="data.RData")# 或者,用 ASCII 格式save(data, file="data.RData", ascii=TRUE)# 能夠保存多個對象save(data, data1, file="data.RData")# 從新加載數據load("data.RData")

saveRDS() 和 save()最重要的區別:當你用 saveRDS() 保存數據時,你指定對象的名稱;當你用 save() 加載數據時,它將自動使用原始對象的名稱。自動使用原始對象名稱有時能夠簡化工做流程,可是當它在不一樣的環境中使用將數據分配給其它對象時也是有缺點的。對象

最新最先最熱ci

相關文章
相關標籤/搜索