parse_*() 函數(shù)族。
這些函數(shù)接受一個字符向量,并返回一個特定向量,如邏輯、整數(shù)或日期向量:
str(parse_logical(c("TRUE", "FALSE", "NA")))
#> logi [1:3] TRUE FALSE NA
str(parse_integer(c("1", "2", "3")))
#> int [1:3] 1 2 3
str(parse_date(c("2010-01-01", "1979-10-14")))
#> Date[1:2], format: "2010-01-01" "1979-10-14"
和 tidyverse 中的所有函數(shù)一樣, parse_*() 函數(shù)族的用法是一致的。第一個參數(shù)是需要解
析的字符向量, na 參數(shù)設定了哪些字符串應該當作缺失值來處理:
parse_integer(c("1", "231", ".", "456"), na = ".")
#> [1] 1 231 NA 456
如果解析失敗,你會收到一條警告:
x <- parse_integer(c("123", "345", "abc", "123.45"))
#> Warning: 2 parsing failures.
#> row col expected actual
#> 3 -- an integer abc#> 4 -- no trailing characters .45解析失敗的值在輸出中是以缺失值的形式存在的:x#> [1] 123 345 NA NA#> attr(,"problems")#> # A tibble: 2 × 4
#> row col expected actual#> <int> <int> <chr> <chr>#> 1 3 NA an integer abc
#> 2 4 NA no trailing characters .45
如果解析失敗的值很多,那么就應該使用 problems() 函數(shù)來獲取完整的失敗信息集合。這
個函數(shù)會返回一個 tibble,你可以使用 dplyr 包來進行處理:
problems(x)
#> # A tibble: 2 × 4
#> row col expected actual#> <int> <int> <chr> <chr>#> 1 3 NA an integer abc
#> 2 4 NA no trailing characters .45
在解析函數(shù)的使用方面,最重要的是要知道有哪些解析函數(shù),以及每種解析函數(shù)用來處理
哪種類型的輸入。具體來說,重要的解析函數(shù)有 8 種。
? parse_logical() 和 parse_integer() 函數(shù)分別解析邏輯值和整數(shù)。因為這兩個解析函數(shù)
基本不會出現(xiàn)問題,所以我們不再進行更多介紹。
? parse_double() 是嚴格的數(shù)值型解析函數(shù), parse_number() 則是靈活的數(shù)值型解析函數(shù)。
這兩個函數(shù)要比你預想的更復雜,因為世界各地書寫數(shù)值的方式不盡相同。
? parse_character() 函數(shù)似乎太過簡單,甚至沒必要存在。但一個棘手的問題使得這個
函數(shù)變得非常重要:字符編碼。
? parse_factor() 函數(shù)可以創(chuàng)建因子, R 使用這種數(shù)據(jù)結構來表示分類變量,該變量具有
固定數(shù)目的已知值。
? parse_datetime()、 parse_date() 和 parse_time() 函數(shù)可以解析不同類型的日期和時間。
它們是最復雜的,因為有太多不同的日期書寫形式。








暫無數(shù)據(jù)