該函數已在 readr 中被取代並移至熔化包.
用法
melt_delim(
file,
delim,
quote = "\"",
escape_backslash = FALSE,
escape_double = TRUE,
locale = default_locale(),
na = c("", "NA"),
quoted_na = TRUE,
comment = "",
trim_ws = FALSE,
skip = 0,
n_max = Inf,
progress = show_progress(),
skip_empty_rows = FALSE
)
melt_csv(
file,
locale = default_locale(),
na = c("", "NA"),
quoted_na = TRUE,
quote = "\"",
comment = "",
trim_ws = TRUE,
skip = 0,
n_max = Inf,
progress = show_progress(),
skip_empty_rows = FALSE
)
melt_csv2(
file,
locale = default_locale(),
na = c("", "NA"),
quoted_na = TRUE,
quote = "\"",
comment = "",
trim_ws = TRUE,
skip = 0,
n_max = Inf,
progress = show_progress(),
skip_empty_rows = FALSE
)
melt_tsv(
file,
locale = default_locale(),
na = c("", "NA"),
quoted_na = TRUE,
quote = "\"",
comment = "",
trim_ws = TRUE,
skip = 0,
n_max = Inf,
progress = show_progress(),
skip_empty_rows = FALSE
)
參數
- file
-
文件路徑、連接或文字數據(單個字符串或原始向量)。
以
.gz
、.bz2
、.xz
或.zip
結尾的文件將自動解壓縮。將自動下載以http://
、https://
、ftp://
或ftps://
開頭的文件。遠程gz文件也可以自動下載並解壓。文字數據對於示例和測試最有用。要被識別為文字數據,輸入必須用
I()
包裝,是包含至少一個換行符的字符串,或者是至少包含一個帶有換行符的字符串的向量。使用值
clipboard()
將從係統剪貼板讀取。 - delim
-
用於分隔記錄中的字段的單個字符。
- quote
-
用於引用字符串的單個字符。
- escape_backslash
-
文件是否使用反斜杠來轉義特殊字符?這比
escape_double
更通用,因為反斜杠可用於轉義分隔符、引號字符,或添加特殊字符,例如\\n
。 - escape_double
-
文件是否通過加倍引號來轉義引號?即,如果此選項為
TRUE
,則值""""
表示單引號\"
。 - locale
-
區域設置控製默認值因地而異。默認區域設置為 US-centric(如 R),但您可以使用
locale()
創建自己的區域設置來控製默認時區、編碼、小數標記、大標記和日/月名稱等內容。 - na
-
要解釋為缺失值的字符串的字符向量。將此選項設置為
character()
以指示沒有缺失值。 - quoted_na
-
引號內的缺失值是否應被視為缺失值(默認)或字符串。從 readr 2.0.0 開始,此參數已被軟棄用。
- comment
-
用於標識評論的字符串。注釋字符之後的任何文本都將被默默忽略。
- trim_ws
-
在解析每個字段之前是否應該刪除前導和尾隨空格(ASCII 空格和製表符)?
- skip
-
讀取數據之前要跳過的行數。如果提供
comment
,則跳過後任何注釋行都將被忽略。 - n_max
-
讀取的最大行數。
- progress
-
顯示進度條?默認情況下,它隻會在交互式會話中顯示,而不會在編織文檔時顯示。可以通過將選項
readr.show_progress
設置為FALSE
來禁用自動進度條。 - skip_empty_rows
-
空白行應該被完全忽略嗎?即,如果此選項是
TRUE
,則根本不會表示空白行。如果是FALSE
,則它們將由所有列中的NA
值表示。
值
四列的 tibble()
:
-
row
,令牌來自原始文件中的行 -
col
,令牌來自原始文件中的列 -
data_type
,令牌的數據類型,例如"integer"
、"character"
、"date"
,以與guess_parser()
函數類似的方式進行猜測。 -
value
,令牌本身作為字符串,與其在原始文件中的表示形式保持不變。
如果存在解析問題,則會出現警告,告訴您有多少問題,並且您可以使用 problems()
檢索詳細信息。
細節
對於某些非矩形數據格式,將數據解析為融合格式(其中每行代表一個標記)可能很有用。
melt_csv()
和 melt_tsv()
是一般 melt_delim()
的特殊情況。它們對於讀取最常見類型的平麵文件數據、逗號分隔值和製表符分隔值非常有用。 melt_csv2()
使用 ;
作為字段分隔符,使用 ,
作為小數點。這在一些歐洲國家很常見。
也可以看看
read_delim()
用於從分隔文件讀取矩形數據的常規方法。
例子
# Input sources -------------------------------------------------------------
# Read from a path
melt_csv(readr_example("mtcars.csv"))
#> Warning: `melt_csv()` was deprecated in readr 2.0.0.
#> ℹ Please use `meltr::melt_csv()` instead
#> # A tibble: 363 × 4
#> row col data_type value
#> <dbl> <dbl> <chr> <chr>
#> 1 1 1 character mpg
#> 2 1 2 character cyl
#> 3 1 3 character disp
#> 4 1 4 character hp
#> 5 1 5 character drat
#> 6 1 6 character wt
#> 7 1 7 character qsec
#> 8 1 8 character vs
#> 9 1 9 character am
#> 10 1 10 character gear
#> # … with 353 more rows
melt_csv(readr_example("mtcars.csv.zip"))
#> # A tibble: 363 × 4
#> row col data_type value
#> <dbl> <dbl> <chr> <chr>
#> 1 1 1 character mpg
#> 2 1 2 character cyl
#> 3 1 3 character disp
#> 4 1 4 character hp
#> 5 1 5 character drat
#> 6 1 6 character wt
#> 7 1 7 character qsec
#> 8 1 8 character vs
#> 9 1 9 character am
#> 10 1 10 character gear
#> # … with 353 more rows
melt_csv(readr_example("mtcars.csv.bz2"))
#> # A tibble: 363 × 4
#> row col data_type value
#> <dbl> <dbl> <chr> <chr>
#> 1 1 1 character mpg
#> 2 1 2 character cyl
#> 3 1 3 character disp
#> 4 1 4 character hp
#> 5 1 5 character drat
#> 6 1 6 character wt
#> 7 1 7 character qsec
#> 8 1 8 character vs
#> 9 1 9 character am
#> 10 1 10 character gear
#> # … with 353 more rows
if (FALSE) {
melt_csv("https://github.com/tidyverse/readr/raw/main/inst/extdata/mtcars.csv")
}
# Or directly from a string (must contain a newline)
melt_csv("x,y\n1,2\n3,4")
#> # A tibble: 6 × 4
#> row col data_type value
#> <dbl> <dbl> <chr> <chr>
#> 1 1 1 character x
#> 2 1 2 character y
#> 3 2 1 integer 1
#> 4 2 2 integer 2
#> 5 3 1 integer 3
#> 6 3 2 integer 4
# To import empty cells as 'empty' rather than `NA`
melt_csv("x,y\n,NA,\"\",''", na = "NA")
#> # A tibble: 6 × 4
#> row col data_type value
#> <dbl> <dbl> <chr> <chr>
#> 1 1 1 character "x"
#> 2 1 2 character "y"
#> 3 2 1 empty ""
#> 4 2 2 missing NA
#> 5 2 3 empty ""
#> 6 2 4 character "''"
# File types ----------------------------------------------------------------
melt_csv("a,b\n1.0,2.0")
#> # A tibble: 4 × 4
#> row col data_type value
#> <dbl> <dbl> <chr> <chr>
#> 1 1 1 character a
#> 2 1 2 character b
#> 3 2 1 double 1.0
#> 4 2 2 double 2.0
melt_csv2("a;b\n1,0;2,0")
#> Warning: `melt_csv2()` was deprecated in readr 2.0.0.
#> ℹ Please use `meltr::melt_csv2()` instead
#> ℹ Using "','" as decimal and "'.'" as grouping mark. Use `read_delim()` for more control.
#> # A tibble: 4 × 4
#> row col data_type value
#> <dbl> <dbl> <chr> <chr>
#> 1 1 1 character a
#> 2 1 2 character b
#> 3 2 1 double 1,0
#> 4 2 2 double 2,0
melt_tsv("a\tb\n1.0\t2.0")
#> Warning: `melt_tsv()` was deprecated in readr 2.0.0.
#> ℹ Please use `meltr::melt_tsv()` instead
#> # A tibble: 4 × 4
#> row col data_type value
#> <dbl> <dbl> <chr> <chr>
#> 1 1 1 character a
#> 2 1 2 character b
#> 3 2 1 double 1.0
#> 4 2 2 double 2.0
melt_delim("a|b\n1.0|2.0", delim = "|")
#> Warning: `melt_delim()` was deprecated in readr 2.0.0.
#> ℹ Please use `meltr::melt_delim()` instead
#> # A tibble: 4 × 4
#> row col data_type value
#> <dbl> <dbl> <chr> <chr>
#> 1 1 1 character a
#> 2 1 2 character b
#> 3 2 1 double 1.0
#> 4 2 2 double 2.0
相關用法
- R readr melt_table 返回空格分隔文件中每個標記的熔化數據
- R readr melt_fwf 返回固定寬度文件中每個標記的熔化數據
- R readr datasource 創建源對象。
- 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 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 count_fields 計算文件每一行中的字段數
- R readr read_table 將空格分隔的列讀入 tibble
- R readr problems 檢索解析問題
- R readr parse_guess 使用“最佳”類型進行解析
- R readr parse_datetime 解析日期/時間
- R readr read_file 讀/寫完整文件
注:本文由純淨天空篩選整理自Hadley Wickham等大神的英文原創作品 Return melted data for each token in a delimited file (including csv & tsv)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。