write_*()
係列函數是對 write.csv()
等類似函數的改進,因為它們的速度大約是 write.csv()
的兩倍。與 write.csv()
不同,這些函數不包括行名稱作為寫入文件中的列。通用函數 output_column()
應用於每個變量以將列強製為合適的輸出。
用法
write_delim(
x,
file,
delim = " ",
na = "NA",
append = FALSE,
col_names = !append,
quote = c("needed", "all", "none"),
escape = c("double", "backslash", "none"),
eol = "\n",
num_threads = readr_threads(),
progress = show_progress(),
path = deprecated(),
quote_escape = deprecated()
)
write_csv(
x,
file,
na = "NA",
append = FALSE,
col_names = !append,
quote = c("needed", "all", "none"),
escape = c("double", "backslash", "none"),
eol = "\n",
num_threads = readr_threads(),
progress = show_progress(),
path = deprecated(),
quote_escape = deprecated()
)
write_csv2(
x,
file,
na = "NA",
append = FALSE,
col_names = !append,
quote = c("needed", "all", "none"),
escape = c("double", "backslash", "none"),
eol = "\n",
num_threads = readr_threads(),
progress = show_progress(),
path = deprecated(),
quote_escape = deprecated()
)
write_excel_csv(
x,
file,
na = "NA",
append = FALSE,
col_names = !append,
delim = ",",
quote = "all",
escape = c("double", "backslash", "none"),
eol = "\n",
num_threads = readr_threads(),
progress = show_progress(),
path = deprecated(),
quote_escape = deprecated()
)
write_excel_csv2(
x,
file,
na = "NA",
append = FALSE,
col_names = !append,
delim = ";",
quote = "all",
escape = c("double", "backslash", "none"),
eol = "\n",
num_threads = readr_threads(),
progress = show_progress(),
path = deprecated(),
quote_escape = deprecated()
)
write_tsv(
x,
file,
na = "NA",
append = FALSE,
col_names = !append,
quote = "none",
escape = c("double", "backslash", "none"),
eol = "\n",
num_threads = readr_threads(),
progress = show_progress(),
path = deprecated(),
quote_escape = deprecated()
)
參數
- x
-
要寫入磁盤的數據幀或小塊。
- file
-
要寫入的文件或連接。
- delim
-
用於分隔值的分隔符。對於
write_delim()
默認為" "
,對於write_excel_csv()
默認為","
,對於write_excel_csv2()
默認為";"
。必須是單個字符。 - na
-
用於缺失值的字符串。默認為 NA。缺失值永遠不會被引用;與
na
具有相同值的字符串將始終被引用。 - append
-
如果
FALSE
,將覆蓋現有文件。如果TRUE
,將追加到現有文件。在這兩種情況下,如果文件不存在,則會創建新文件。 - col_names
-
如果
FALSE
,列名將不會包含在文件頂部。如果TRUE
,將包含列名稱。如果未指定,col_names
將采用給定append
的相反值。 - quote
-
如何處理包含需要引用的字符的字段。
-
needed
- 僅在需要時才引用值:如果它們包含分隔符、引號或換行符。 -
all
- 引用所有字段。 -
none
- 切勿引用字段。
-
- escape
-
當數據中存在引號時要使用的轉義類型。
-
double
- 引號通過加倍來轉義。 -
backslash
- 引號通過前麵的反斜杠轉義。 -
none
- 引號不會轉義。
-
- eol
-
要使用的行結束符。最常見的是
"\n"
用於 Unix 樣式換行符,或"\r\n"
用於 Windows 樣式換行符。 - num_threads
-
讀取和具體化向量時使用的線程數。如果您的數據在字段中包含換行符,解析器將自動強製僅使用單個線程。
- progress
-
顯示進度條?默認情況下,它隻會在交互式會話中顯示,而不會在編織文檔時顯示。顯示每 50,000 個值更新一次,並且僅在估計讀取時間為 5 秒或更長時才會顯示。可以通過將選項
readr.show_progress
設置為FALSE
來禁用自動進度條。 - path
- quote_escape
輸出
因子是被迫的。使用 grisu3 算法將雙精度數格式化為十進製字符串。POSIXct
值的格式為帶有 UTC 時區的 ISO8601注意:本地或非 UTC 時區的 POSIXct
對象在寫入前將轉換為 UTC 時間。
所有列均編碼為 UTF-8。 write_excel_csv()
和 write_excel_csv2()
還包括 UTF-8 Byte order mark,它向 Excel 指示 csv 是 UTF-8 編碼的。
創建 write_excel_csv2()
和 write_csv2
是為了允許具有不同區域設置的用戶使用默認設置保存 .csv 文件(例如,;
作為列分隔符,,
作為小數點分隔符)。這在一些歐洲國家很常見。
僅當值包含逗號、引號或換行符時才用引號引起來。
如果給出適當的擴展名,write_*()
函數將自動壓縮輸出。目前支持三種擴展:.gz
(用於 gzip 壓縮)、.bz2
(用於 bzip2 壓縮)和 .xz
(用於 lzma 壓縮)。請參閱示例以獲取更多信息。
參考
Florian Loitsch,使用整數快速準確地打印浮點數,PLDI '10,http://www.cs.tufts.edu/~nr/cs257/archive/florian-loitsch/printf.pdf
例子
# \dontshow{
.old_wd <- setwd(tempdir())
# }
# If only a file name is specified, write_()* will write
# the file to the current working directory.
write_csv(mtcars, "mtcars.csv")
write_tsv(mtcars, "mtcars.tsv")
# If you add an extension to the file name, write_()* will
# automatically compress the output.
write_tsv(mtcars, "mtcars.tsv.gz")
write_tsv(mtcars, "mtcars.tsv.bz2")
write_tsv(mtcars, "mtcars.tsv.xz")
# \dontshow{
setwd(.old_wd)
# }
相關用法
- R readr with_edition 暫時更改活動閱讀器版本
- R readr datasource 創建源對象。
- R readr melt_delim 返回分隔文件中每個標記的熔化數據(包括 csv 和 tsv)
- R readr read_rds 讀/寫 RDS 文件。
- R readr read_lines 從文件中讀取/寫入行
- R readr parse_number 靈活地解析數字
- R readr read_fwf 將固定寬度文件讀入 tibble
- R readr read_builtin 從包中讀取內置對象
- R readr Tokenizers 分詞器。
- R readr melt_table 返回空格分隔文件中每個標記的熔化數據
- R readr date_names 創建或檢索日期名稱
- R readr type_convert 重新轉換現有 DataFrame 中的字符列
- R readr locale 創建語言環境
- R readr parse_vector 解析字符向量。
- R readr read_delim 將分隔文件(包括 CSV 和 TSV)讀入 tibble
- R readr format_delim 將 DataFrame 轉換為分隔字符串
- R readr edition_get 檢索當前活動版本
- R readr readr_example 獲取 readr 示例的路徑
- R readr melt_fwf 返回固定寬度文件中每個標記的熔化數據
- R readr count_fields 計算文件每一行中的字段數
- R readr read_table 將空格分隔的列讀入 tibble
- R readr problems 檢索解析問題
- R readr parse_guess 使用“最佳”類型進行解析
- R readr parse_datetime 解析日期/時間
- R readr read_file 讀/寫完整文件
注:本文由純淨天空篩選整理自Hadley Wickham等大神的英文原創作品 Write a data frame to a delimited file。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。