我們之前學習過將各種數據導入R的方法。但有時候可能要做相反的事情——把R中的數據導出去——以實現數據的保存或者是在外部程序中使用。
符號分隔文本文件
可以用write.table()函數將R對象輸出到符號分隔文件中。函數使用方法:
write.table(x, outfile, seq=delimiter, quote=TRUE, na="NA")
其中x是輸出的對象,outfile是目標文件,比如:
write.table(mydata, "mydata.txt", seq=",")
會將mydata數據集輸出到當前目錄下逗號分隔的mydata.txt文件中,用路徑可以將輸出文件保存到任何地方。用seq=""替換seq=",",數據就會保存到製表符分隔的文件中。默認情況下,字符床是放在雙引號中,缺失值用NA表示。
Excel電子表格
xlsx包中的write.xlsx()函數可以將R數據框寫入到Excel 2007文件中。使用方法是:
library(xlsx)
write.xlsx(x, outfile, col.Names=TRUE, row.names=TRUE, sheetName="Sheet 1", append=FALSE)
例如這條語句:
library(xlsx)
write.xlsx(mydata, "mydata.xlsx")
會將mydata數據框保存到當前目錄下的Excel文件mydata.xlsx的工作表(默認是Sheet 1)中。默認情況下,數據集中的變量名稱會被作為電子表格頭部,行名稱會放在電子表格的第一列。函數會覆蓋已經存在的mydata.xlsx文件。更多詳情,請參考xlsx擴展包文檔。
統計學程序
foreign包中的write.foreign()可以將數據框導出到外部統計軟件中。這裡會創建兩個文件,一個是保存數據的文本文件,另一個是指導外部統計軟件導入數據的編碼文件。使用格式如下:
write.foreign(dataframe, datafille, codefile, package=package)
例如,下面這段代碼:
library(foreign)
write.foreign(mydata, "mydata.txt","mycode,sps", package="SPSS")
會將mydata數據框導出到當前目錄的純文本文件mydata.txt中,同時還會生成一個用於讀取該文本文件的SPSS程序mycode.sps。package參數的其他值還有“SAS”和“Stata”。
相關閱讀網站:https://cran.r-project.org/doc/manuals/R-data.pdf