打印時,默認隻打印前 20 列。要覆蓋,可以使用設置 options(readr.num_columns)
來修改它(值 0 將關閉打印)。
用法
spec_delim(
file,
delim = NULL,
quote = "\"",
escape_backslash = FALSE,
escape_double = TRUE,
col_names = TRUE,
col_types = list(),
col_select = NULL,
id = NULL,
locale = default_locale(),
na = c("", "NA"),
quoted_na = TRUE,
comment = "",
trim_ws = FALSE,
skip = 0,
n_max = 0,
guess_max = 1000,
name_repair = "unique",
num_threads = readr_threads(),
progress = show_progress(),
show_col_types = should_show_types(),
skip_empty_rows = TRUE,
lazy = should_read_lazy()
)
spec_csv(
file,
col_names = TRUE,
col_types = list(),
col_select = NULL,
id = NULL,
locale = default_locale(),
na = c("", "NA"),
quoted_na = TRUE,
quote = "\"",
comment = "",
trim_ws = TRUE,
skip = 0,
n_max = 0,
guess_max = 1000,
name_repair = "unique",
num_threads = readr_threads(),
progress = show_progress(),
show_col_types = should_show_types(),
skip_empty_rows = TRUE,
lazy = should_read_lazy()
)
spec_csv2(
file,
col_names = TRUE,
col_types = list(),
col_select = NULL,
id = NULL,
locale = default_locale(),
na = c("", "NA"),
quoted_na = TRUE,
quote = "\"",
comment = "",
trim_ws = TRUE,
skip = 0,
n_max = 0,
guess_max = 1000,
progress = show_progress(),
name_repair = "unique",
num_threads = readr_threads(),
show_col_types = should_show_types(),
skip_empty_rows = TRUE,
lazy = should_read_lazy()
)
spec_tsv(
file,
col_names = TRUE,
col_types = list(),
col_select = NULL,
id = NULL,
locale = default_locale(),
na = c("", "NA"),
quoted_na = TRUE,
quote = "\"",
comment = "",
trim_ws = TRUE,
skip = 0,
n_max = 0,
guess_max = 1000,
progress = show_progress(),
name_repair = "unique",
num_threads = readr_threads(),
show_col_types = should_show_types(),
skip_empty_rows = TRUE,
lazy = should_read_lazy()
)
spec_table(
file,
col_names = TRUE,
col_types = list(),
locale = default_locale(),
na = "NA",
skip = 0,
n_max = 0,
guess_max = 1000,
progress = show_progress(),
comment = "",
show_col_types = should_show_types(),
skip_empty_rows = TRUE
)
參數
- file
-
文件路徑、連接或文字數據(單個字符串或原始向量)。
以
.gz
、.bz2
、.xz
或.zip
結尾的文件將自動解壓縮。將自動下載以http://
、https://
、ftp://
或ftps://
開頭的文件。遠程gz文件也可以自動下載並解壓。文字數據對於示例和測試最有用。要被識別為文字數據,輸入必須用
I()
包裝,是包含至少一個換行符的字符串,或者是至少包含一個帶有換行符的字符串的向量。使用值
clipboard()
將從係統剪貼板讀取。 - delim
-
用於分隔記錄中的字段的單個字符。
- quote
-
用於引用字符串的單個字符。
- escape_backslash
-
文件是否使用反斜杠來轉義特殊字符?這比
escape_double
更通用,因為反斜杠可用於轉義分隔符、引號字符,或添加特殊字符,例如\\n
。 - escape_double
-
文件是否通過加倍引號來轉義引號?即,如果此選項為
TRUE
,則值""""
表示單引號\"
。 - col_names
-
TRUE
、FALSE
或列名稱的字符向量。如果
TRUE
,輸入的第一行將用作列名稱,並且不會包含在 DataFrame 中。如果FALSE
,將自動生成列名稱:X1、X2、X3 等。如果
col_names
是字符向量,則這些值將用作列的名稱,並且輸入的第一行將被讀入輸出數據幀的第一行。缺少 (
NA
) 列名將生成警告,並用虛擬名稱...1
、...2
等進行填充。重複的列名將生成警告並使其唯一,請參閱name_repair
來控製其方式完畢。 - col_types
-
NULL
、cols()
規範或字符串之一。有關更多詳細信息,請參閱vignette("readr")
。如果是
NULL
,則所有列類型都將從輸入的guess_max
行推斷出來,散布在整個文件中。這很方便(而且快速),但不夠穩健。如果猜測的類型錯誤,您需要增加guess_max
或自己提供正確的類型。由
list()
或cols()
創建的列規範必須為每一列包含一個列規範。如果您隻想讀取列的子集,請使用cols_only()
。或者,您可以使用緊湊的字符串表示形式,其中每個字符代表一列:
-
c = 字符
-
我 = 整數
-
n = 數字
-
d = 雙
-
l = 邏輯
-
f = 因子
-
D = 日期
-
T = 日期時間
-
t = 時間
-
? = 猜猜
-
_ 或 - = 跳過
默認情況下,讀取沒有列規範的文件將打印一條消息,顯示
readr
猜測的內容。要刪除此消息,請設置show_col_types = FALSE
或設置 `options(readr.show_col_types = FALSE)。 -
- col_select
-
要包含在結果中的列。您可以使用與
dplyr::select()
相同的mini-language 來按名稱引用列。使用c()
可以使用多個選擇表達式。盡管這種用法不太常見,col_select
也接受數字列索引。有關選擇語言的完整詳細信息,請參閱?tidyselect::language
。 - id
-
用於存儲文件路徑的列的名稱。當讀取多個輸入文件並且文件路徑中有數據(例如數據收集日期)時,這非常有用。如果
NULL
(默認值)則不會創建額外的列。 - locale
-
區域設置控製默認值因地而異。默認區域設置為 US-centric(如 R),但您可以使用
locale()
創建自己的區域設置來控製默認時區、編碼、小數標記、大標記和日/月名稱等內容。 - na
-
要解釋為缺失值的字符串的字符向量。將此選項設置為
character()
以指示沒有缺失值。 - quoted_na
-
引號內的缺失值是否應被視為缺失值(默認)或字符串。從 readr 2.0.0 開始,此參數已被軟棄用。
- comment
-
用於標識評論的字符串。注釋字符之後的任何文本都將被默默忽略。
- trim_ws
-
在解析每個字段之前是否應該刪除前導和尾隨空格(ASCII 空格和製表符)?
- skip
-
讀取數據之前要跳過的行數。如果提供
comment
,則跳過後任何注釋行都將被忽略。 - n_max
-
讀取的最大行數。
- guess_max
-
用於猜測列類型的最大行數。永遠不會使用超過讀取的行數。有關更多詳細信息,請參閱
vignette("column-types", package = "readr")
。 - name_repair
-
列名的處理。默認行為是確保列名稱為
"unique"
。支持多種修複策略:-
"minimal"
:除了名稱的基本存在之外,沒有名稱修複或檢查。 -
"unique"
(默認值):確保名稱唯一且不為空。 -
"check_unique"
:沒有名稱修複,但檢查它們是unique
。 -
"universal"
:將名稱命名為unique
並進行語法設置。 -
函數:應用自定義名稱修複(例如,
name_repair = make.names
用於基本 R 樣式的名稱)。 -
purrr-style 匿名函數,請參閱
rlang::as_function()
。
此參數作為
repair
傳遞到vctrs::vec_as_names()
。有關這些條款以及用於執行這些條款的策略的更多詳細信息,請參閱此處。 -
- num_threads
-
用於初始解析和延遲讀取數據的處理線程數。如果您的數據在字段中包含換行符,解析器應自動檢測到這一點並回退到僅使用一個線程。但是,如果您知道文件在帶引號的字段中包含換行符,那麽顯式設置
num_threads = 1
是最安全的。 - progress
-
顯示進度條?默認情況下,它隻會在交互式會話中顯示,而不會在編織文檔時顯示。可以通過將選項
readr.show_progress
設置為FALSE
來禁用自動進度條。 - show_col_types
-
如果是
FALSE
,則不顯示猜測的列類型。如果TRUE
始終顯示列類型,即使提供了列類型。如果NULL
(默認)僅在col_types
參數未顯式提供列類型時顯示列類型。 - skip_empty_rows
-
空白行應該被完全忽略嗎?即,如果此選項是
TRUE
,則根本不會表示空白行。如果是FALSE
,則它們將由所有列中的NA
值表示。 - lazy
-
懶惰地讀取值?默認情況下,這是
FALSE
,因為延遲讀取文件時有一些特殊的考慮因子,這導致了一些用戶的錯誤。具體來說,讀取然後寫回同一個文件時,事情會變得很棘手。但是,一般來說,惰性讀取 (lazy = TRUE
) 有很多好處,特別是對於交互式使用以及當您的下遊工作僅涉及行或列的子集時。在
should_read_lazy()
和vroom::vroom()
的altrep
參數的文檔中了解更多信息。
例子
# Input sources -------------------------------------------------------------
# Retrieve specs from a path
spec_csv(system.file("extdata/mtcars.csv", package = "readr"))
#> cols(
#> mpg = col_double(),
#> cyl = col_double(),
#> disp = col_double(),
#> hp = col_double(),
#> drat = col_double(),
#> wt = col_double(),
#> qsec = col_double(),
#> vs = col_double(),
#> am = col_double(),
#> gear = col_double(),
#> carb = col_double()
#> )
spec_csv(system.file("extdata/mtcars.csv.zip", package = "readr"))
#> cols(
#> mpg = col_double(),
#> cyl = col_double(),
#> disp = col_double(),
#> hp = col_double(),
#> drat = col_double(),
#> wt = col_double(),
#> qsec = col_double(),
#> vs = col_double(),
#> am = col_double(),
#> gear = col_double(),
#> carb = col_double()
#> )
# Or directly from a string (must contain a newline)
spec_csv(I("x,y\n1,2\n3,4"))
#> cols(
#> x = col_double(),
#> y = col_double()
#> )
# Column types --------------------------------------------------------------
# By default, readr guesses the columns types, looking at 1000 rows
# throughout the file.
# You can specify the number of rows used with guess_max.
spec_csv(system.file("extdata/mtcars.csv", package = "readr"), guess_max = 20)
#> cols(
#> mpg = col_double(),
#> cyl = col_double(),
#> disp = col_double(),
#> hp = col_double(),
#> drat = col_double(),
#> wt = col_double(),
#> qsec = col_double(),
#> vs = col_double(),
#> am = col_double(),
#> gear = col_double(),
#> carb = col_double()
#> )
相關用法
- R readr spec 檢查 DataFrame 的列規格
- 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 write_delim 將數據幀寫入分隔文件
- R readr parse_vector 解析字符向量。
- R readr with_edition 暫時更改活動閱讀器版本
- 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 使用“最佳”類型進行解析
注:本文由純淨天空篩選整理自Hadley Wickham等大神的英文原創作品 Generate a column specification。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。