CSV 轉換選項
用法
csv_convert_options(
check_utf8 = TRUE,
null_values = c("", "NA"),
true_values = c("T", "true", "TRUE"),
false_values = c("F", "false", "FALSE"),
strings_can_be_null = FALSE,
col_types = NULL,
auto_dict_encode = FALSE,
auto_dict_max_cardinality = 50L,
include_columns = character(),
include_missing_columns = FALSE,
timestamp_parsers = NULL,
decimal_point = "."
)
參數
- check_utf8
邏輯值:檢查字串欄位的 UTF8 有效性?
- null_values
字元向量,用於識別空值的拼寫。類似於
na.strings
參數到read.csv()
或readr::read_csv()
中的na
。- true_values
字元向量,用於識別
TRUE
值的拼寫- false_values
字元向量,用於識別
FALSE
值的拼寫- strings_can_be_null
邏輯值:字串/二進制欄位是否可以有空值?類似於
readr::read_csv()
的quoted_na
參數- col_types
一個
Schema
或NULL
以推斷類型- auto_dict_encode
邏輯值:是否嘗試自動對字串/二進制資料進行字典編碼 (類似於 stringsAsFactors)。此設定對於非推斷欄位 (在
col_types
中的欄位) 會被忽略。- auto_dict_max_cardinality
如果
auto_dict_encode
,字串/二進制欄位會字典編碼到此數量的唯一值 (預設為 50),之後會切換到常規編碼。- include_columns
如果非空,表示應該實際讀取和轉換的 CSV 檔案中的欄位名稱 (依照向量的順序)。
- include_missing_columns
邏輯值:如果提供了
include_columns
,是否應將其中命名但未在資料中找到的欄位作為null()
類型的欄位包含在內?預設值 (FALSE
) 表示讀取器將會引發錯誤。- timestamp_parsers
使用者定義的時間戳記解析器。如果指定了多個解析器,CSV 轉換邏輯將嘗試從此向量的開頭開始解析值。可能的值包括 (a)
NULL
(預設值,使用 ISO-8601 解析器);(b) strptime 解析字串的字元向量;或 (c) TimestampParser 物件的列表。- decimal_point
用於浮點數中小數點的字元。
範例
tf <- tempfile()
on.exit(unlink(tf))
writeLines("x\n1\nNULL\n2\nNA", tf)
read_csv_arrow(tf, convert_options = csv_convert_options(null_values = c("", "NA", "NULL")))
#> # A tibble: 4 x 1
#> x
#> <int>
#> 1 1
#> 2 NA
#> 3 2
#> 4 NA
open_csv_dataset(tf, convert_options = csv_convert_options(null_values = c("", "NA", "NULL")))
#> FileSystemDataset with 1 csv file
#> 1 columns
#> x: int64