English · PDF 155
"x,y\n1,'a,b'"
read_csv("a,b\n1,2,3\n4,5,6") read_csv("a,b,c\n1,2\n1,2,3,4") read_csv("a,b\n"1") read_csv("a,b\n1,2\na,b") read_csv("a;b\n1;3")
在深入了解 readr 如何从磁盘读取文件之前,我们需要稍微绕个弯,先讨论一下 parse_*() 函数。这些函数接受一个字符向量,并返回一个更特化的向量,例如逻辑型、整数型或日期型:
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"
这些函数本身就很有用,同时也是 readr 的重要组成部分。在本节中学习了各个解析器的工作原理之后,我们将在下一节回过头来看它们如何协同工作以解析一个完整的文件。
与 tidyverse 中的所有函数一样,parse_*() 函数是统一的;第一个参数是要解析的字符向量,na 参数指定哪些字符串应被视为缺失值: