write.table
位於 utils
包(package)。 說明
write.table
將其所需的參數 x
(如果它不是一個也不是矩陣,則將其轉換為數據幀後)打印到文件或 connection 。
用法
write.table(x, file = "", append = FALSE, quote = TRUE, sep = " ",
eol = "\n", na = "NA", dec = ".", row.names = TRUE,
col.names = TRUE, qmethod = c("escape", "double"),
fileEncoding = "")
write.csv(...)
write.csv2(...)
參數
x |
要寫入的對象,最好是矩陣或 DataFrame 。如果不是,則嘗試將 |
file |
命名文件的字符串或打開用於寫入的connection。 |
append |
合乎邏輯的。僅當 |
quote |
邏輯值( |
sep |
字段分隔符字符串。 |
eol |
在每行(行)末尾打印的字符。例如, |
na |
用於數據中缺失值的字符串。 |
dec |
用於數字或複雜列中小數點的字符串:必須是單個字符。 |
row.names |
指示 |
col.names |
指示 |
qmethod |
一個字符串,指定在引用字符串時如何處理嵌入的雙引號字符。必須是 |
fileEncoding |
字符串:如果非空則聲明要在文件(而不是連接)上使用的編碼,因此可以在寫入字符數據時對其進行重新編碼。請參閱 |
... |
|
細節
如果表沒有列,則僅在 row.names = TRUE
時才會寫入行名,反之亦然。
實數和複數以盡可能高的精度寫入。
如果 DataFrame 具有類似矩陣的列,這些列將轉換為結果中的多列(通過 as.matrix
),因此字符 col.names
或數字 quote
應引用結果中的列,而不是輸入。默認情況下,此類類似矩陣的列不帶引號。
DataFrame 中任何列表或具有類(例如日期)的列都將通過適當的 as.character
方法進行轉換:默認情況下,此類列不帶引號。另一方麵,矩陣的任何類信息都將被丟棄,非原子(例如列表)矩陣將被強製為字符。
如果 quote
指定,則隻有已轉換為字符的列才會被引用。
dec
參數僅適用於不受轉換為字符的列,因為它們具有類或者是類似矩陣的列(或矩陣)的一部分,特別是受 I()
保護的列。使用options("OutDec")
來控製此類轉換。
在幾乎所有情況下,數值量的轉換均由選項 "scipen"
控製(請參閱 options
),但具有 digits = 15
的內部等效項。為了進行更精細的控製,請使用format
創建字符矩陣/ DataFrame ,並對其調用write.table
。
這些函數每 1000 行輸出檢查一次用戶中斷。
如果file
是非打開連接,則嘗試打開它,然後在使用後關閉它。
要在 Windows 上寫入 Unix-style 文件,請使用二進製連接,例如file = file("filename", "wb")
。
CSV 文件
默認情況下,行名稱列沒有列名稱。如果col.names = NA
和row.names = TRUE
添加空白列名稱,這是電子表格讀取 CSV 文件的約定。請注意,此類 CSV 文件可以讀入R經過
read.csv(file = "<filename>", row.names = 1)
write.csv
和 write.csv2
為編寫 CSV 文件提供了方便的包裝器。他們將sep
和dec
(見下文)、qmethod = "double"
和col.names
設置為NA
(如果row.names = TRUE
(默認)),否則設置為TRUE
。
write.csv
使用"."
作為小數點,使用逗號作為分隔符。
write.csv2
使用逗號作為小數點,使用分號作為分隔符,這是某些西歐語言環境中 CSV 文件的 Excel 約定。
這些包裝器故意不靈活:它們旨在確保使用正確的約定來寫入有效的文件。更改 append
、 col.names
、 sep
、 dec
或 qmethod
的嘗試將被忽略,並顯示警告。
CSV 文件不記錄編碼,如果對於許多其他應用程序來說它們不是 ASCII,這會導致問題。如果文件是 ASCII 或 UTF-16(使用 fileEncoding = "UTF-16LE"
)或者可能是當前 Windows 代碼頁(例如 "CP1252"
),Windows Excel 2007/10 將正確打開文件(例如,通過文件關聯機製),但是 ' “文本導入向導”(來自“數據”選項卡)允許更多的編碼選擇。 Excel:mac 2004/8 隻能導入“Macintosh”(這似乎意味著 Mac Roman)、“Windows”(可能是 Latin-1)和“PC-8”文件。 OpenOffice 3.x 在打開文件時詢問字符集。
CSV 文件有一個 IETF RFC4180 ( https://www.rfc-editor.org/rfc/rfc4180 ),它強製要求使用逗號作為分隔符和 CRLF 行結尾。 write.csv
在 Windows 上寫入兼容文件:在其他平台上使用 eol = "\r\n"
。
注意
對於具有大量(數百或更多)列的數據幀,write.table
可能會很慢:這是不可避免的,因為每列可能屬於不同的類,因此必須單獨處理。如果它們都屬於同一類,請考慮使用矩陣。
例子
x <- data.frame(a = I("a \" quote"), b = pi)
tf <- tempfile(fileext = ".csv")
## To write a CSV file for input to Excel one might use
write.table(x, file = tf, sep = ",", col.names = NA,
qmethod = "double")
file.show(tf)
## and to read this file back into R one needs
read.table(tf, header = TRUE, sep = ",", row.names = 1)
## NB: you do need to specify a separator if qmethod = "double".
### Alternatively
write.csv(x, file = tf)
read.csv(tf, row.names = 1)
## or without row names
write.csv(x, file = tf, row.names = FALSE)
read.csv(tf)
## Not run:
## To write a file in Mac Roman for simple use in Mac Excel 2004/8
write.csv(x, file = "foo.csv", fileEncoding = "macroman")
## or for Windows Excel 2007/10
write.csv(x, file = "foo.csv", fileEncoding = "UTF-16LE")
## End(Not run)
也可以看看
“R 數據導入/導出”手冊。
write.matrix
位於包 MASS
中。
相關用法
- R winextras 獲取Windows版本
- R winMenus MS Windows 下的用戶菜單 (Rgui)
- R winProgressBar MS Windows 下的進度條
- R winDialog Windows下的對話框
- R warnErrList 從列表中收集並總結錯誤
- R select.list 從列表中選擇項目
- R COMPILE 編譯用於 R 的文件
- R readRegistry 讀取 Windows 注冊表配置單元
- R browseVignettes 在 HTML 瀏覽器中列出暈影
- R hasName 檢查姓名
- R nsl 按主機名查找 IP 地址
- R edit 調用文本編輯器
- R create.post 準備電子郵件和帖子的輔助函數
- R hsearch-utils 幫助搜索實用程序
- R download.packages 從類似 CRAN 的存儲庫下載軟件包
- R DLL.version MS Windows 上的 DLL 版本信息
- R ls.str 列表對象及其結構
- R Rscript R 前端腳本
- R bug.report 發送錯誤報告
- R PkgUtils 用於構建和檢查附加包的實用程序
- R cite 引用參考書目條目
- R SweaveSyntConv 轉換 Sweave 語法
- R RSiteSearch 搜索文檔中的關鍵詞或短語
- R glob2rx 將通配符或通配符模式更改為正則表達式
- R getFromNamespace 用於開發命名空間的實用函數
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Data Output。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。