跳到內容

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

一個 SchemaNULL 以推斷類型

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