←
PDF 166 / 520 #> 4 1004 x no trailing characters .723450553836301 #> 5 1005 x no trailing characters .61452413
→
English · PDF 166
Original PDF page 166
中文 · PDF 166

#> 4 1004 x 有多余的字符 .723450553836301 #> 5 1005 x 有多余的字符 .614524137461558 #> 6 1006 x 有多余的字符 .473980569280684 #> # ……还有 994 行

一个好的策略是逐列处理,直到没有问题为止。这里我们可以看到 x 列有很多解析问题——整数值后面有多余的字符。这表明我们需要改用 double 解析器。

要修复这个调用,首先将列规范复制并粘贴到你的原始调用中:

challenge <- read_csv( readr_example("challenge.csv"), col_types = cols( x = col_integer(), y = col_character() ) )

然后你可以调整 x 列的类型:

challenge <- read_csv( readr_example("challenge.csv"), col_types = cols( x = col_double(), y = col_character() ) )

这解决了第一个问题,但如果我们查看最后几行,会看到它们是存储在字符向量中的日期:

tail(challenge) #> # 一个 tibble:6 × 2 #> x y #> #> 1 0.805 2019-11-21 #> 2 0.164 2018-03-29 #> 3 0.472 2014-08-04 #> 4 0.718 2015-08-16 #> 5 0.270 2020-02-04 #> 6 0.608 2019-01-06

你可以通过指定 y 为日期列来解决这个问题:

challenge <- read_csv( readr_example("challenge.csv"), col_types = cols( x = col_double(), y = col_date()