Data input and output-用R把數(shù)據(jù)寫入文件

問題

你想把數(shù)據(jù)寫入一個文件。

方案

寫到有分隔符的文本文件

最簡單的方式是用write.csv()。默認(rèn)情況下乖酬,write.csv()包含行名,但是這通常沒必要融求,而且可能會導(dǎo)致混亂咬像。

# 一個簡單的例子
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保存的數(shù)據(jù)格式

write.csv()write.table()是最適合與其他數(shù)據(jù)分析程序交互操作的函數(shù)县昂。然而,他們不會保持?jǐn)?shù)據(jù)結(jié)構(gòu)的特殊屬性陷舅,如:列是否是一個字符類型或因子倒彰,或因子的水平的順序。為了做到這一點莱睁,它本該在R中被寫成一個特殊的格式待讳。

下面是三種主要的方法:

第一個方法是輸出R源代碼,運行時仰剿,將重新創(chuàng)建該對象创淡。這應(yīng)該對大多數(shù)數(shù)據(jù)對象有用,但它可能無法專一地重現(xiàn)一些較為復(fù)雜的數(shù)據(jù)對象南吮。

# 保存在一個能容易被R載入的文本文件中
dump("data", "data.Rdmpd")
# 能保存多個對象
dump(c("data", "data1"), "data.Rdmpd")

# 再次加載數(shù)據(jù)
source("data.Rdmpd")
# 載入時琳彩,原始的數(shù)據(jù)名稱將被自動使用

另一個方法是,在RDS格式中寫入的個人數(shù)據(jù)對象旨袒。這種格式可以是二進(jìn)制或ASCII汁针。二進(jìn)制更緊湊,而ASCII將與版本控制系統(tǒng)更有效率砚尽,如Git施无。

# 在二進(jìn)制RDS格式中保存一個簡單的對象
saveRDS(data, "data.rds")
# 或,使用ASCII格式
saveRDS(data, "data.rds", ascii=TRUE)

# 再次載入:
data <- readRDS("data.rds")

也可以將多個對象保存到一個單一的文件必孤,使用RData格式猾骡。

# 在二進(jìn)制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()一個重要的區(qū)別是,使用前者兴想,當(dāng)你用readRDS()讀取數(shù)據(jù)幢哨,你指定對象的名稱;使用后者嫂便,當(dāng)你用load()載入數(shù)據(jù)捞镰,會自動使用原來的對象名稱。自動使用原始對象名稱有時可以簡化工作流程毙替,但如果數(shù)據(jù)對象在不同的環(huán)境中使用時岸售,也會成為一個缺點。


原文鏈接:http://www.cookbook-r.com/Data_input_and_output/Writing_data_to_a_file/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末厂画,一起剝皮案震驚了整個濱河市凸丸,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌袱院,老刑警劉巖屎慢,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異忽洛,居然都是意外死亡腻惠,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門脐瑰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來妖枚,“玉大人廷臼,你說我怎么就攤上這事苍在。” “怎么了荠商?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵寂恬,是天一觀的道長。 經(jīng)常有香客問我莱没,道長初肉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任饰躲,我火速辦了婚禮牙咏,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嘹裂。我一直安慰自己妄壶,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布寄狼。 她就那樣靜靜地躺著丁寄,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上伊磺,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天盛正,我揣著相機(jī)與錄音,去河邊找鬼屑埋。 笑死豪筝,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的摘能。 我是一名探鬼主播壤蚜,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼徊哑!你這毒婦竟也來了袜刷?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤莺丑,失蹤者是張志新(化名)和其女友劉穎著蟹,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體梢莽,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡萧豆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了昏名。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涮雷。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖轻局,靈堂內(nèi)的尸體忽然破棺而出洪鸭,到底是詐尸還是另有隱情,我是刑警寧澤仑扑,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布览爵,位于F島的核電站,受9級特大地震影響镇饮,放射性物質(zhì)發(fā)生泄漏蜓竹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一储藐、第九天 我趴在偏房一處隱蔽的房頂上張望俱济。 院中可真熱鬧,春花似錦钙勃、人聲如沸蛛碌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽左医。三九已至授帕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間浮梢,已是汗流浹背跛十。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留秕硝,地道東北人芥映。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像远豺,于是被迫代替她去往敵國和親奈偏。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容